文章目录
前言
在一个项目中,需要配置的参数往往是繁重的,而其中系统配置和应用配置占据较大的比重,我们需要对其进行拆分。
一、通用配置文件
application.yml文件通常存放系统框架配置如spring、mybatis等;application-common.yml则用来存放应用通用配置参数。
1. 定义
#application-common.yml 通用配置
common:
message: 小猪佩奇
2. 使用
2.1 application.yml
spring:
profiles:
include: common
2.2 启动类
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringBoot3Application.class, args);
ConfigurableEnvironment environment = run.getEnvironment();
String appName = environment.getProperty("spring.application.name");
log.info("{}启动完成",appName);
String message = environment.getProperty("common.message");
log.info("提示语{}",message);
}
3. 测试
二、多环境配置文件
多环境配置文件主要用于存放应用程序中不同环境中存在差异的配置信息,如ip、密钥等;可以划分为本地(local)、开发(dev)、测试(test)、生产(prod)
1.定义
1.1 application-local.yml
#本地配置
application:
profile:
name: local
1.2 application-dev.yml
#开发配置
application:
profile:
name: dev
1.3 application-test.yml
#测试配置
application:
profile:
name: test
1.4 application-prod.yml
#生产配置
application:
profile:
name: local
2.使用
2.1 application.yml
spring:
profiles:
include: common
active: local
2.2 启动类
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringBoot3Application.class, args);
ConfigurableEnvironment environment = run.getEnvironment();
String appName = environment.getProperty("spring.application.name");
log.info("{}启动完成",appName);
String message = environment.getProperty("common.message");
log.info("提示语{}",message);
String profile = environment.getProperty("application.profile.name");
log.info("当前环境{}",profile);
}
3.测试
三、多环境配置文件分组
上面的其实基本够用了,因为太多的配置文件不利于维护,如果你的配置确实特别的多,想分类配置,那么可以接着往下看;
场景描述:配置太多,我想数据库一个文件、redis一个文件、mq一个文件
1. 定义
1.1 application-local-db.yml
#本地配置
db:
config:
ip: localhost
1.2 application-local-redis.yml
#本地配置
redis:
config:
ip: localhost
1.3 application-local-mq.yml
#本地配置
mq:
config:
ip: localhost
2. 使用
2.1 application.yml
spring:
profiles:
include: common
active: local
group:
local: local-db,local-redis,local-mq
2.2 启动类
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringBoot3Application.class, args);
ConfigurableEnvironment environment = run.getEnvironment();
String appName = environment.getProperty("spring.application.name");
log.info("{}启动完成",appName);
String message = environment.getProperty("common.message");
log.info("提示语{}",message);
String profile = environment.getProperty("application.profile.name");
log.info("当前环境{}",profile);
String db = environment.getProperty("db.config.ip");
String redis = environment.getProperty("redis.config.ip");
String mq = environment.getProperty("mq.config.ip");
log.info("db[{}],redis[{}],mq[{}]",db,redis,mq);
}
3. 测试
总结
开发的时候多花些心思,上线的时候省点事。