如何通过启动应用程序让位于外部jar文件中的类覆盖启动应用程序中的类?
用例:引导应用程序largeApp
很少发布。作为largeApp
的用户,我想通过覆盖特定的类而不重建largeApp
来纠正错误。
.
|-- dist
| |-- largeApp.jar
| |-- lib
| | `-- bugfixes.jar
编辑:Bean覆盖范围太窄。
在切换到引导之前,我通过构建myApp
使其包含largeApp
使用战争项目myApp.war
和largeApp.war
<project>
<groupId>x.y.z</groupId>
<artifactId>myApp</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>x.y.z</groupId>
<artifactId>largeApp</artifactId>
<version>${fw.commons.jetty.version}</version>
<type>war</type>
</dependency>
</dependencies>
</project>
两个项目都将包含src/main/java/SomeClass.java
,并且myApp
中的类将首先自动加载(因为war classloader首先加载了项目类文件,然后是jar文件)
编辑2 :
new Foo()
Class.forName("a.b.Foo")
此外,配置管理也不是问题。