我必须创建一个插件管理器来处理jar中包含的Spring Bean,在我的情况下是外部插件。
文件夹外部插件在我的类路径中。
我的问题是,当罐子里有豆子时,春天不会装载豆子。如果 jar 文件是在 /externalPlugin 文件夹中解压的,Spring 引导会正确加载 bean。
有没有一种特定的方法来创建 jar,弹簧在 JAR 中正确加载豆子?甚至是否可以在外部 Jar 中加载豆子?
谢谢你的时间。
在我的 Spring 启动应用程序中,为了加载外部 Bean,我使用了注释
@ComponentScan({"com.app","com.plugin"})
要知道我的 bean 是否已加载,我使用并打印结果
String[] beanNames = ctx.getBeanNamesForType(AbstractPlugin.class);
外部插件 jar 使用 jar cvf 命令创建
如下/externalPlugin/pluginA.jar
|-META-INF/
| |-MANIFEST.mf
|
|-com/
|-plugin/
|- beanA1.class
|- beanA2.class
package com.plugin
@Component
public class BeanA1 extends AbstractPlugin{
}
package com.plugin
@Component
public class BeanA2 extends AbstractPlugin{
}
找到了我需要的东西http://www.codevomit.xyz/bootlog/blog/how-to-provide-spring-boot-fat-jar
和特制的罐子与埃克利斯佩