环境隔离的意义
不同环境下属性值可能不同,比如开发环境和测试环境的数据库连接的配置不同。 因此需要环境隔离机制,指定不同的环境。
maven环境隔离与属性替换
<resources>与<profile>标签共同定义不同的环境
<resources>指定配置文件,<profile>指定属性
代码块
<build>
<resources>
<resource>
<directory>src/main/resources/${conf-dir}</directory>
</resource>
<resource>
<directory>src/main/resources/base</directory>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<conf-dir>dev</conf-dir>
<appkey>abc</appkey>
</properties>
</profile>
<profile>
<id>stage</id>
<properties>
<conf-dir>stage</conf-dir>
<appkey>def</appkey>
</properties>
</profile>
</profiles>
激活环境
编译打包阶段
1.mvn clean -U package -Dmaven.test.skip=true 激活默认的环境,<activeByDefault>标签指定的环境。
2.mvn clean -U package -P stage -Dmaven.test.skip=true 激活stage环境
属性替换
编译打包阶段
替换的目标:pom文件与标签<resources>指定目录下的配置文件
替换的字符:文件里面的占位符 ${}
springBoot环境隔离与属性值使用
application.yml作为配置文件,spring.profiles指定环境
代码块
---
# 全局配置
spring:
profiles:
active: dev
application:
name: pay-front
---
# dev
spring:
profiles: dev
appkey: com.sankuai.zc.open.payfront
---
# stage
spring:
profiles: stage
appkey: com.sankuai.zc.open.payfront
---
激活环境
启动阶段
1.java -jar xxxxx.jar 激活默认的环境,spring.profiles.active指定的环境。
2.java -jar xxxxx.jar --spring.profiles.active=stage 激活stage环境
属性注入
运行阶段
注入的目标:为java类的字段赋值
使用的方式:占位符${属性名}
注入的方式:方式1:bean实例化的xml文件中,直接根据占位符${属性名}获取值
方式2:bean定义代码中,利用注解将代码中需要使用的属性信息注入@Value("${属性名}")