在Spring中的Classpath中发现Plugin-JARS

时间:2011-03-22 09:21:27

标签: java spring classpath

春天有没有办法发现一个 来自类路径的“插件”-JAR, 并加载其applicationContext.xml dynamicaly?

1 个答案:

答案 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。