在项目开发阶段,开发环境和实际生产环境是不一样,比如使用的数据库/服务连接配置等。因此,配置多个开发环境profile还是必要的

多环境的配置(yml)方式

配置其实很简单,在resource目录下,新建多个application-${profile}.yml文件,每个文件代表一种环境。

我们部署devprofile双开发环境,就需要新建application-dev.ymlapplication-prod.yml以及application.yml

最后,application.yml里面开启需要的环境配置,这里启动的是prod环境

spring:
profiles:
active: prod

单元测试

使用spring el表达式测试是否真的做到环境之间的切换

不同环境使用不同配置变量值

application-dev.yml中添加下面一段:

com:
luzj:
name: 开发环境
weight: 3000金

application-prod.yml添加:

com:
luzj:
name: 生产环境
weight: 5000金

添加实体类,使用El表达式注入application-${profile}.yml的值

添加Person类:

@Component
public class Person {
@Value("${com.luzj.name}")
private String name;
@Value("${com.luzj.weight}")
private String weight; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getWeight() {
return weight;
} public void setWeight(String weight) {
this.weight = weight;
}
}
  • 我们使用@Value给域注入配置文件中的值

单元测试

    //spring.profiles.active = dev
@Test
public void testDev() {
Assert.assertEquals(person.getName(), "开发环境");
Assert.assertEquals(person.getWeight(), "3000金");
} //spring.profiles.active = prod
@Test
public void testProd() {
Assert.assertEquals(person.getName(), "生产环境");
Assert.assertEquals(person.getWeight(), "5000金");
}

测试结果



代码地址

参考

最新文章

  1. ubuntu下cacti安装配置
  2. sql 行转 列, 列转行
  3. net-snmp子代理(SubAgent)编写详述
  4. Apple Watch开发快速入门教程
  5. Java整型与字符串相互转换(转)
  6. EF 接收OUTPUT参数的方法 How to Retrieve Stored Procedure Output Parameters in Entity Framework
  7. PHP数组foreach后使用current取值的问题
  8. 模块工具类--utils
  9. 【Android进阶】在开发中Application到底用来做什么
  10. POJ 2296 Map Labeler
  11. 深港澳大湾区第三次.NET技术交流会圆满成功
  12. fork子进程
  13. 当用户管理系统遇上python和mongodb后……
  14. [转帖]linux下的X server:linux图形界面原理
  15. python要点简要-一日精通python
  16. mysql 开发进阶篇系列 26 数据库RPM安装演示
  17. Quick-Cocos2d-x文件结构分析
  18. Linux-文件查找命令find
  19. springMVC 防重校验(拦截器)
  20. runtime error (运行时错误)

热门文章

  1. Bootstrap组件介绍
  2. 基于forms组件和Ajax实现注册功能
  3. 阿里云 linux 系统的架构
  4. vue.extend与vue.component的区别和联系
  5. CSS深入理解学习笔记之border
  6. 卸载Gac里被windows installer所reference的assembly的方法
  7. 长大Tips的第一步
  8. Smart template的控件能否当成普通控件来用
  9. C语言 scanf函数
  10. windows网络模型之重叠IO(完成例程)的使用