SpringBoot实现多环境配置文件切换教程详解
目录
- 背景
- 解决方案
- 一、新建配置文件
- 二、 服务调用测试
- 2.1 新建调用类
- 2.2 使用样例项目
- 三、扩展练习
- 3.1 使用注解标记配置,首先定义一个接口
- 3.2 分别定义俩个实现类来实现它
- 3.3 修改application.yml文件激活配置
- 3.4 新增查询方法
- 3.5 使用一个或多个配置文件及激活标记文件
- 3.6 切换日志文件
背景 很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境下配置用不同的配置文件或者不同的配置。
解决方案 spring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。
一、新建配置文件 注:配置文件优先级(由高到低):bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml
此处使用.yml文件格式,在src/main/resources下新建如下文件
文章图片
application.yml (主配置)
server:port: 9990spring:profiles:active: dev #选定配置#自定义默认值curvar:context: default.curvar
application-pro.yml (开发配置)
#模拟开发配置curvar:context: "开发配置变量"
application-pro.yml(生产配置)
#模拟生产配置curvar:context: "生产配置变量"
二、 服务调用测试
2.1 新建调用类
@Slf4j@RestControllerpublic class IndexController {@Value("${curvar.context}")private String cusvar; /*** .* 使用哪一个配置** @return*/@RequestMapping("/test")public String test() {log.debug("使用:[{}]", cusvar); return "使用配置: " + cusvar; }}
2.2 使用样例项目
打开浏览器输入:http://localhost:9990/test
文章图片
文章图片
三、扩展练习
3.1 使用注解标记配置,首先定义一个接口
public interface Connector {String configure(); }
3.2 分别定义俩个实现类来实现它
import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; @Component@Profile("pro-db")//标记文件,环境切换public class ProConnector implements Connector {@Overridepublic String configure() {return "pro生产标记文件..."; }}
import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; @Component@Profile("dev-db")//标记文件,环境切换public class DevConnector implements Connector {@Overridepublic String configure() {return "dev开发标记文件..."; }}
3.3 修改application.yml文件激活配置
spring:profiles:#active: dev #选定配置active: pro-db #选定配置激活标记文件
3.4 新增查询方法
@Autowiredprivate Connector connector; //注入/*** .* 使用哪一个被标记文件** @return*/@GetMapping("/proFile")public String proFile() {log.debug("使用配置文件:[{}]", connector.configure()); return connector.configure(); }
【SpringBoot实现多环境配置文件切换教程详解】打开浏览器输入:http://localhost:9990/proFile
文章图片
3.5 使用一个或多个配置文件及激活标记文件
修改application.yml文件,进行属性叠加
spring:profiles:include: pro,dev-db #指定配置文件及激活标记文件#active: pro-db #选定标记文件
新增查询方法
/*** .* 使用哪一个配置文件及标记文件** @return*/@GetMapping("/include")public String include() {return String.format("使用配置文件:%s,使用标记文件:%s", cusvar, connector.configure()); }
打开浏览器输入:http://localhost:9990/include
文章图片
3.6 切换日志文件
新建logback文件
文章图片
logback-pro.yml (生产日志)
logback debug %d{HH:mm:ss.SSS} %contextName[%thread] %-5level %logger{36} [%file : %line] - %msg%n ${log.path} ${log.path}.%d{yyyy-MM-dd}.%i.gz 100MB 7 %date %level[%thread] %logger{36} [%file : %line] %msg%n
修改application.yml文件,配置日志属性
spring:profiles:#include: pro,dev-db #指定配置文件及激活标记文件#active: pro-db #选定标记文件active: pro #指定配置文件#日志logging:config: classpath:logback-${spring.profiles.active}.xml #本地IDEA启动配置#config: config/logback-${spring.profiles.active}.xml # java -jar 包启动配置
项目启动访问接口,控制台打印日志
文章图片
友情提示:jar运行指定配置
java -jar xxx.jar --spring.profiles.active=dev#指定dev配置java -jar xxx.jar --server.port=9090 #指定启动端口
以上就是SpringBoot实现多环境配置文件切换教程详解的详细内容,更多关于SpringBoot配置文件切换的资料请关注脚本之家其它相关文章!
推荐阅读
- 淘宝天猫|补单平台-淘宝补单-多维度补单-安全的补单平台是什么样的
- 20多个好用的 Vue 组件库,请查收!
- 其他|耳机的危害有多严重(哪种耳机对耳朵伤害小?)
- python|python 视频ai换脸_Python实现AI换脸--Faceswap
- python机器人运动学_机械臂正运动学-DH参数-Python快速实现
- 人工智能换脸技术python_很吓人的技术,200行Python代码实现换脸程序
- python实现视频ai换脸_python 实现 AI 换脸
- SpringBoot|SpringBoot 开局篇
- 《C++要笑着学》|【C++要笑着学】从零开始实现日期类 | 体会代码的复用 | 提供完整代码
- 学习态度|为什么C++比C语言麻烦这么多,程序员笑了(这些点你知道吗())