java - PropertyPlaceholder 不够用的 Spring 每个环境配置

标签 java spring

我正在为每个环境配置我的 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/

相关文章:

java - 从 Eclipse 插件使用 Jython

java - 使用 ByteArray 请求多部分/表单数据

java - 如何比较从 2 个不同类加载器加载的 2 个类

java - 为什么我的 java.util.zip 函数显示不一致的行为?

java - hibernate 中的 ColumnTransformer

java - 我可以在 Quartz 作业中创建 Spring 上下文吗?或者这是一个糟糕的主意?

java - 在 spring mvc 3 中包含 css 和 js 文件

java - r2dbc-pool 连接取消后未释放

java - 当没有定义请求对象时,如何使用 Spring Boot 发送 SOAP 请求

java - Memcached + SpringBoot 从常量文件中读取缓存键值