【发布时间】:2011-07-20 07:53:25
【问题描述】:
有没有办法在 Spring 中发现一个 来自类路径的“插件”-JAR, 并动态加载它的applicationContext.xml?
【问题讨论】:
有没有办法在 Spring 中发现一个 来自类路径的“插件”-JAR, 并动态加载它的applicationContext.xml?
【问题讨论】:
我通过以下方法使用 Spring 实现了类似插件的系统:
每个插件都必须包含一个带有特定名称和包前缀的 spring-context 文件(例如,com.example.myApp.whatever 包含 plugin.xml 或 applicationContext.xml,如果您愿意)。
对于要在类路径中检测到的插件,宿主应用程序应该按照 previos 方案动态导入任何 jar 贡献的所有上下文文件。这是通过 spring 配置中基于通配符的导入来实现的:
<import resource="classpath*:/com/example/myApp/**/plugin.xml" />
前提是每个插件都定义了已知接口的 bean(例如,MyInterface)。宿主应用程序可以定义 List
【讨论】: