我正在配置我的弹簧应用程序per-environemnt,我遇到了以下问题:
只要环境改变了bean构造函数/属性值,我就可以使用PropertyPlaceholderConfigurer
。
现在我面临的事实是,豆结构本身会在不同的环境中发生变化。例如。在test environemnt中我定义了单个bean,在生产环境中我定义了另一个相同接口的bean,它需要List类型的属性 - 换句话说,PropertyPlaceholderConfigurer
无法真正帮助的不同结构。
我选择了通过<import resource="myDefinition-${Environment}.xml />
定义每个环境的spring xml配置。这也没关系,直到我想让它可选。我在那里定义的资源是@Autowired(required = false)
到另一个bean。
由于<import ... />
不允许使用可选属性(可以在这里看到:https://jira.springsource.org/browse/SPR-1624),我最终为environemnts提供了空的.xml配置文件,我不需要那个bean。这有点不方便。
有人可以就这种情况下的最佳做法提出建议吗?
感谢。
答案 0 :(得分:4)
Spring 3.1中引入的Bean定义配置文件旨在解决这类问题。见http://static.springsource.org/spring/docs/3.1.0.RC2/spring-framework-reference/html/new-in-3.1.html