Profile

本文介绍了Spring框架中Profile的概念,用于在不同环境下切换Bean配置。详细讲述了如何使用注解`@Profile`和XML配置Profile,并列举了五种激活Profile的方法,包括Web上下文参数、JNDI条目、环境变量、JVM启动参数和集成测试中的ActiverProfiles。通过这些方法,开发者可以在开发、测试等不同阶段灵活地选择要加载的Bean配置。
摘要由CSDN通过智能技术生成

                                       Profile

在软件开发过程中,敏捷开发模式十分常见,也就是每次都提交一个小阶段的测试。那么可能是开发人员使用一套环境,测试人员使用一套环境,两套系统的数据库是不一样的。面对这种“在不同的环境中进行切换”的需求,Spring也会对这样的场景进行支持,也就是Bean的Profile

一.使用注解@Profile配置

二.使用XML定义Profile

<beans profile="test">
    <bean id="testDataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName"     value="com.mysql.jdbc.Driver"/>
        <property name="url   " value="jdbc:mysql://localhost:3306/chapter12"/>
        <property name="username"     value="root"/>
        <property name="password"     value="123456"/>
    </bean>
</beans>

<beans profile="dev">
    <bean id="devDataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName"     value="com.mysql.jdbc.Driver"/>
        <property name="url   " value="jdbc:mysql://localhost:3306/chapter13"/>
        <property name="username"     value="root"/>
        <property name="password"     value="123456"/>
    </bean>
</beans>

 三.启动Profile

启动java配置或者xml配置Profile时,这两个Bean不会被加载到Spring IOC中,需要自行激活Profile。激活Profile有5种方法。

  • 在使用SpringMVC中可以配置Web上下文参数,或者DispatchServlet参数。
  • 作为JNDI条目
  • 配置环境变量
  • 配置JVM启动参数
  • 在集成测试环境中使用ActiverProfiles

1.在测试代码中,加入@ActiveProfiles来指定加载哪个Profile。

@ActiveProfiles("dev")

2.当在服务器中运行,则可以配置Java虚拟机的启动项,比如在Tomcat上或main方法上,这时可以启动java虚拟机的参数来实现,这个参数存在两个。

  • spring.profiles.active:启动的Profile,如果配置了它,则下面的配置项将会失效
  • spring.profiles.default:默认启动的Profile,如果系统没有配置关于Profile,则会启动。

这时候可以配置JVM的参数,比如需要启动test

JAVA_OPTS="-Dspring.profiles.active=test"

3.在大部分情况下需要启动web服务器,如果使用SpringMVC,可以配置web环境参数或者DispatcherServlet参数来选择对应的Profile,比如在web.xml中进行配置。

......
<!--使用web环境参数-->
<context-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>test</param-value>
</context-param>
......
<!--使用SpringMVC的DispatcherServlet环境参数-->
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
    <init-param>
        <param-name>spring.profiles.active </param-name>
        <param-name>test</param-name>
    </init-param>
</servlet>

----全文来自《JavaEE 互联网轻量级框架整合开发》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值