【发布时间】:2011-10-09 09:04:06
【问题描述】:
我想使用功能切换范例。具体来说,我希望我的 Spring 上下文包含基于切换的不同 bean 定义。
我遇到过这个:http://robertmaldon.blogspot.com/2007/04/conditionally-defining-spring-beans.html,看起来还可以,但可能有点太麻烦了
【问题讨论】:
标签: java spring featuretoggle
我想使用功能切换范例。具体来说,我希望我的 Spring 上下文包含基于切换的不同 bean 定义。
我遇到过这个:http://robertmaldon.blogspot.com/2007/04/conditionally-defining-spring-beans.html,看起来还可以,但可能有点太麻烦了
【问题讨论】:
标签: java spring featuretoggle
您可以使用spring profiles - 简而言之,您使用配置文件设置运行应用程序,并且上下文包含不同的bean,具体取决于该配置文件。
【讨论】:
我相信您真正在寻找的是 Spring 管理不同配置文件的一种方式。
不幸的是,在撰写本文时,还没有这样的功能。据我所知,人们通常会设计各种方案来解决这个问题,但基本上是使用 Spring 的 PropertyPlaceholderConfigurer 将不同的运行时配置“注入”到他们的属性文件中,方法是将 ${placeholder} 放入他们的 Spring 导入语句中,然后将该占位符取消引用为他们的环境变化(例如“DEV”、“TEST”、“PROD”)。
不过,Spring 3.1 将对此进行更改 - 因为它将引入 @Profile 注释,该注释似乎与 Spring Java 配置选项很好地结合在一起,提供了一种完全放弃 XML 配置的方法(当然,应该选择这样做)。
也许这篇文章会更清楚地说明这一点:Spring 3.1 M1: Introducing @Profile
【讨论】: