经常遇到这样的问题,需要修改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包,部署后也不会出错。大功告成!
原创文章,欢迎转载,转载请注明出处!