我正在为每个环境配置我的 spring 应用程序,我遇到了以下问题:
只要环境只改变 bean 构造函数/属性值,我就可以使用 PropertyPlaceholderConfigurer
.
现在我面临着 bean 结构本身在不同环境中发生变化的事实。例如。在测试环境中,我定义了单个 bean,在生产环境中,我定义了另一个具有相同接口(interface)的 bean,它需要 List set 类型的属性——换句话说,不同的结构,其中 PropertyPlaceholderConfigurer
真的帮不上什么忙。
我开始定义每个环境的 spring xml 配置,通过 <import resource="myDefinition-${Environment}.xml />
导入它.这也很好,直到我想要它是可选的。我在那里定义的资源是 @Autowired(required = false)
到另一个 bean。
自 <import ... />
不允许可选属性(在这里可以看到:https://jira.springsource.org/browse/SPR-1624)我最终得到了空的 .xml 配置文件,用于我不需要那个 bean 的环境。这有点不方便。
有人可以就这种情况下的最佳实践提出建议吗?
谢谢。
最佳答案
在 Spring 3.1 中引入的 Bean 定义配置文件旨在解决此类问题。参见 http://static.springsource.org/spring/docs/3.1.0.RC2/spring-framework-reference/html/new-in-3.1.html
关于java - PropertyPlaceholder 不够用的 Spring 每个环境配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9598957/