我正在尝试将我们的应用程序从基于Spring XML的配置迁移到基于注释的配置。在我们的一个 XML 文件中,比如说 application-config.xml
,我们有以下行:
<import resource="${jobName}/beans.xml" />
这里${jobName}
是在 JVM 启动时设置的系统属性。还有其他系统属性用于加载其他 XML 资源。现在,在我的基于注释的配置中,我希望具有与XML文件本身类似的@Configuration
类。因此,我有一个类ApplicationConfig
,它将导入jobName
特定的Configuration
类。
我如何实现这一点?
@Configuration
@Import({somehow-need-to-use-system-property-to-import-appropriate-class})
class ApplicationConfiguration {
//bean definitions
}
@Import用于将其他配置类导入 spring 上下文。
使用@ImportResource导入 xml 文件。
从 spring 3.1 开始,Spring 在 @Import 中支持系统属性。
我没有检查@ImportResource,但也应该有可能。