Spring基础(三)——Spring中环境与profile

1、为什么需要使用profile?
在开发软件的时候,常常会将应用程序从一个环境迁移到另一个环境,比如在开发阶段中,某些环境相关的做法并不太适合迁移到生产环境中,甚至即便迁移过去也无法正常工作,比如数据库配置等。可以通过配置 bean profile,依据不同的环境,创建对应的bean
2、profile配置的方式
(1)在配置类中的配置
@Profile即可以在类上配置,也可以在方法上配置。通常为了方便管理和维护,将不同环境下的配置放置在一个同一个配置类中,

@Configuration
public class DataSourceConfig{
	@Bean
	@Profile("dev")
	public DataSource devDataSource(){
	....
	}
	@Bean
	@Profile("prod")
	public DataSource prodDataSource(){
	....
	}
}

(2)在xml中配置,也有两种方式,第一种是在根元素里面配置profile=“dev”,这就需要有几个不同的环境,就需要定义几个不同的xml。第二种方法是在根元素里面,定义一个子,然后在子中声明profile的配置
第一种:

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"
		profile="dev">

第二种:

	<beans profile="dev">
			...
	</beans>
	 
	<beans profile="prod">
		...
	</beans>

3、那么如何激活使用哪一种环境呢
使用spring.profiles.active和spring.profiles.default,如果同时使用这两种,那么default就不起作用。在web应用中,通常选用在web.xml中

<context-param>
		<param-name>spring.profiles.default</param-name>
		<param-value>dev</param-value>
	</context-param> 
	<servlet>
		<servlet-name>springDispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:config/applicationContext.xml</param-value>
		</init-param>
		<init-param>
			<param-name>spring.profiles.default</param-name>
			<param-value>dev</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值