Feature toggle in spring context
I want to use the feature-toggle paradigm. Specifically, I want my Spring contexts to contain different bean definitions based on a toggle.
I've come across this: http://robertmaldon.blogspot.com/2007/04/conditionally-defining-spring-beans.html, which looks ok, but maybe a开发者_JAVA百科 bit too cumbersome
You can use spring profiles - in short, you run your application with a profile setting, and the context contains different beans depending on that profile.
I believe what you're actually looking for is a way for Spring to manage different configuration profiles.
Unfortunately, at the time of this writing, such a feature does not exist. As far as I know, people usually devise various schemes to get around that, but essentially use Spring's PropertyPlaceholderConfigurer
to "inject" different runtime configurations into their property files by placing ${placeholder}
into their Spring import statements and then dereferencing this placeholder as their enviroment changes (e.g. "DEV", "TEST", "PROD").
That will be changed by Spring 3.1, though - as it will introduce @Profile
annotation which seems well coupled with Spring Java Configuration option, giving one a way to completely abandon XML configuration (should one choose to, of course).
Perhaps this article will shed more light into this: Spring 3.1 M1: Introducing @Profile
精彩评论