SpringBoot多环境配置与properties读取
2018-12-14 本文已影响20人
传说中的汽水枪
多环境配置
环境参数配置文件列表:
image.png
application.properties
#dev: 开发环境
#pro: 正式环境
#pre: 预发布环境
#test: 测试环境
spring.profiles.active=dev
default.application.name=label
server.port=9108
mybatis.mapper-locations=classpath:mapper/*.xml
第一个参数spring.profiles.active
(假设值是dev
)其中之一作用是最后会读取application.properties
和application-{dev}.properties
这两个文件
我们定义任意字符串表明开发环境,正式环境,预发布环境,测试环境
properties读取
在这里使用如下方法读取的:
import org.springframework.core.env.Environment;
@RequestMapping("/home")
@Api("Default controller")
@RestController
public class HomeController {
@Autowired
Environment environment;
@RequestMapping(value = "test",method = RequestMethod.GET)
public DataResult test() {
// 这个在application.properites里
String value1 = this.environment.getProperty("com.all.value");
// 这个在application-dev.properites里
String value2 = this.environment.getProperty("com.dev.value");
// 这个在application-test.properites里
String value3 = this.environment.getProperty("com.test.value");
Map<String, Object> res = new HashMap<>();
res.put("com.all.value", value1);
res.put("com.dev.value", value2);
res.put("com.test.value", value3);
return DataResult.ok(res, ErrorCode.Success);
}
}
- 如果
spring.profiles.active=dev
,那么value1和value2是有值,value3没有值 - 如果
spring.profiles.active=test
,那么value1和value3是有值,value2没有值 - 如果
spring.profiles.active=pro
,那么value1是有值,value2和value3没有值