Java 覆盖jar包内的方法

背景

有时候在java开发过程中会遇到这样的场景,比如说我们需要用jar包里的方法,但是jar包里的方法又不能满足当前的业务逻辑需要,而想直接下载jar包源码修改的话又会很麻烦,这个时候比较简便快捷能满足需要的办法就是覆写jar包中对应的方法,只需要改动你用的类的某一个方法就行,而不用去下载jar包源码再打包那么繁杂。

有一点需要注意的是需要保持方法中的参数不变,同时不能删除原有类的方法,但是可以新增一些方法来实现自己业务逻辑。

java实现

实现代码其实比较简单,就是创建一个和jar包中需要重写类的路径,类名完全一样的类,然后copy jar包中原类的全部方法到jar包外的类中,根据需要改写原方法的业务逻辑或者新增方法来实现自己需要的业务逻辑,由于jar包外代码的优先级高于maven依赖jar包的优先级,这个时候你重写的类就会生效了。

比如LoginController.class

Java 覆盖jar包内的方法

重写后LoginController.java

Java 覆盖jar包内的方法

这里你可以在jar包外方法中新增自己的方法实现新的业务逻辑。


上一篇:实时数仓Hologres 11月刊


下一篇:使用了SAP Spartacus的一个在线网站:乐高Storefront