Spring环境配置,其中PropertyPlaceholder是不够的

时间:2012-03-07 09:40:19

标签: java spring

我正在配置我的弹簧应用程序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。这有点不方便。

有人可以就这种情况下的最佳做法提出建议吗?

感谢。

1 个答案:

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