經常遇到這樣的問題,需要修改jar包中的方法。應該如何做?
1、有些很人性化的框架jar包,比如SpringSecurity,可以修改配置文件指定一個新建的類,讓類實現Jar包中的對應的接口就好了。
2、大部分的jar包都不會有這么方便的功能的。有一個簡單的辦法就是,在項目中建一相同路徑相同名稱的文件,當項目啟動的時候,會優先使用本地編寫的類,覆蓋掉jar包中的內容。也可以是xml文件,properties屬性文件。
3、還有一部份就算這樣,在項目啟動以后還是會調用jar包中的方法,我在使用gradle進行開發的時候就是這樣。這里就只能使用最直接的方法了,直接修改jar包中的方法,替換原有的jar包。這個是可以實現,只是有點麻煩,不寫了。
4、第3中方法的缺陷就是如果Jar包不能在部署以后改動,就不能用了,比如maven項目下的jar包。此時還有一個終極辦法,如果你是使用tomcat進行部署的話,可以使用。
tomcat默認有conf、lib、webapps這三個目錄,其中conf是放tomcat的配置文件,lib是放tomcat的jar包的,webapps中一般放的是我們項目的代碼。tomcat進行加載的時候,會優先調用conf和lib目錄下的文件。所以可以把要替換的xml文件放在conf目錄下,需要替換的jar包放在lib目錄下(需要提前將jar包中的對應方法進行修改)。這樣項目中可以下載jar包,部署后也不會出錯。大功告成!
原創文章,歡迎轉載,轉載請注明出處!