springMVC +maven多环境配置文件

1.使用场景
在我们实际工作中一个项目存在这多份的配置文件,比如我们在开发时候用的		
数据库,和在生产时使用不同的数据库,那么就造成了我们同一套代码连接数
据库的参数是不同的,我们开发完后就得将配置参数修改再提交给测试,测试
完毕再修改参数提交到生产,这样来回的改动配置文件非常的麻烦而且还不安
全。为了解决这个问题所以就要给同一套代码多份配置文件,当在开发的时候
就自动的使用开发需要的配置文件,测试使用测试的配置文件,生成使用生成
的配置文件,相互不干扰,也不需要大量改动配置文件,而且比较安全。
2方式
有两种方式可以解决不同运行环境下使用不同配置文件的问题,一种是在工程	
构建打包阶段进行选择(当项目准备打包的时候,从多个配置文件中选择一个配置文件打包,项目中存在一个配置文件),另一种是在运行阶段进行选择(项目已经打包完毕,项目中这时存在多份配置文件,在运行程序的时候选择具体使用哪个配置文件)。我们在这里就只介绍第一种,在打包的时候就确认配置文件
工程构建时选择
  1. 创建一个maven项目目录结构如下

在这里插入图片描述
图中标红的4个地方为是我们重点去了解的
1是我们配置文件,中的内容如下方便我们做测试用

#测试数据
env.name=${env.name}

2是springmvc的配置文件,程序启动后将属性让spring去管理

<!-- 引入属性文件 -->
	<context:property-placeholder location="classpath:resource/*.properties" />	

3是我们的生产,测试和开发时的真正配置
3.1 dev-env.properties内容如下,这是我们的开发环境,打包后env.name的值替换jdbc.properties中的env.name中的值

# 测试数据
env.name=dev

3.2 prod-env.properties内容如下,这是我们的生产环境,打包后env.name的值替换jdbc.properties中的env.name中的值

# 测试数据
env.name=prod

3.3 test-env.properties内容如下,这是我们的生产环境,打包后env.name的值替换jdbc.properties中的env.name中的值

 测试数据
env.name=test
4.pom配置文件

<build>
	<!-- 打包应用名 -->  
    <finalName>klhealth</finalName>  
    
    <!-- 指定使用打包配置文件 -->
	<filters>
		<filter>environment/${env}-env.properties</filter>
	</filters>
	<!-- 配置需要被替换的资源文件路径 -->
	<resources>
		<resource>
			<directory>src/main/resources</directory>
			<includes>
				<include>**/*.properties</include>
			</includes>
			<filtering>true</filtering>
		</resource>
		<resource>
			<directory>src/main/resources</directory>
		</resource>
	</resources>
</build>
<!-- 多环境打包 -->
<profiles>
	<!-- 开发环境,默认激活 -->
	<profile>
		<id>dev</id>
		<properties>
			<env>dev</env>
		</properties>
		<activation>
			<activeByDefault>true</activeByDefault>
		</activation> 
	</profile>
	<!-- 测试环境 -->
	<profile>
		<id>test</id>
		<properties>
			<env>test</env>
		</properties>
	</profile>
	<!-- 生产环境 -->
	<profile>
		<id>prod</id>
		<properties>
			<env>prod</env>
		</properties>
	</profile>
</profiles>	

在pom.xml配置完整后就可以做实验了,有一个前提是你的项目是可以使用 mvn package 打包的
写写2个测试类将env.name属性返回到页面上
在这里插入图片描述
在这里插入图片描述
做好测试类以后就可以进行打包了
1.使用eclipse进行打包
在你的项目名上或者是pom.xml上右键 Run as -->Maven bulid出现下图
在这里插入图片描述
执行run之后在你项目的target中就会出现你项目的war,将项目war放入tomcat中运行,
然后访问应用的地址调用测试接口,就会返回env.name的值,如果是测试的返回test,然后对项目重新打包测试其他环境时候正常
2maven命令打包
需要你的已经配置maven 的环境变量
打开命令行窗口cd到你的项目下,使用
mvn clean package -P test进行打包 -P后边跟着的是你要打包的环境名称,也可以是 dev,prod
执行之后再将war放入tomcat中测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值