1. 程式人生 > >Java相同全限定名的類載入順序

Java相同全限定名的類載入順序

相同的類指:類的全限定名一樣

問題:

怎麼優先載入自己寫的類

1. 解析:

 class檔案所在位置, 直接在classpath下, 在jar包中

 a: 相同的類, 一個在web-inf/classes目錄下, 一個在jar包中: 此時優先載入classes目錄下的class檔案

b:相同的類, 都在jar包中:此時按照jar的裝載順序, 簡單的如果沒有其他的特殊處理, 就按照jar包的名字排序。 如先載入aa.jar中的檔案, 再載入bb.jar中的檔案

2. 結論

a.將.class檔案放在classes資料夾下

b.如果所有的class被打包為jar, 就修改jar包的名字, 保證先載入自己的jar包。

框架自身的類BaseClass對所有的訪問做了aop(即http請求--->BaseClass--請求日誌-->http要請求的目標方法---->BaseClass---->響應給http),所有的出參、入參都會被打印出日誌來。  有些日誌是不需要的, 為了不顯示這些api的日誌, 就需要對BaseClass改造。改造後要讓框架優先載入自己複寫的BaseClass類。