spring3.1 spring.profiles.active

spring3.1版本添加了一个新的特性,支持环境不同环境的bean配置,称为profile; 和maven的profile很像;例子

 //配置文件1
 <beans profile="beta">
    <bean id="appProperties" class="wookets.bootstrap.AppProperties">
         <property name="someprop" value="CHEESE"/>
    </bean>
 </beans>
 //配置文件2 
 <beans profile="local">
     <bean id="appProperties" class="wookets.bootstrap.AppProperties">
         <property name="someprop" value="WAFFLES"/>
     </bean>
 </beans>

 这样我们可以在不同的环境,如beta,local,使用不同的bean和配置;


 问题是如何指定spring加载哪个环境的bean呢?

    1.通过jvm参数 -Dspring.profiles.active=beta

    2.通过系统属性 export spring.profiles.active=production

    3.web.xml

        

web.xml:
<servlet> 
  <servlet-name>dispatcher</servlet-name> 
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param> 
    <param-name>spring.profiles.active</param-name> 
    <param-value>production</param-value> 
  </init-param> 
</servlet>

大家都知道使用spring-MVC时,通常都会配置成父子容器形式,DispatcherServlet 的init-param 指定环境变量的范围只限于子容器;如果要指定父容器的profile,还是通过1,2来指定。

参考:http://javasplitter.blogspot.hk/2011/06/bean-definition-profiles-and.html

           http://blog.wookets.com/2011/11/spring-31-environment-profile.html


你可能感兴趣的:(spring-mvc)