春天有没有办法发现一个 来自类路径的“插件”-JAR, 并加载其applicationContext.xml dynamicaly?
答案 0 :(得分:1)
我通过以下方法实现了一个类似插件的系统:
每个插件必须包含一个带有特定名称和包前缀的spring-context文件(例如, com.example.myApp.whatever 包含 plugin.xml < / em>,或者您喜欢的applicationContext.xml)。
对于要在类路径中检测到的插件,主机应用程序应该按照previos方案动态导入任何jar提供的所有上下文文件。这是通过spring config中的基于通配符的导入实现的:
<import resource="classpath*:/com/example/myApp/**/plugin.xml" />
前提是每个插件定义已知接口的bean(例如,MyInterface)。主机应用程序可以定义List&lt; MyInterface&gt;类型的属性。并将bean定义为autowire =“byType”,以便检索列表中MyInterfaceType的所有bean。