转:
https://blog.csdn.net/davis2015csdn/article/details/75220046
https://yq.aliyun.com/articles/84323
http://www.cnblogs.com/java-zhao/p/5469183.html
测试不同配置的加载
执行java -jar xxx.jar,可以观察到服务端口被设置为8001,也就是默认的开发环境(dev)
执行java -jar xxx.jar --spring.profiles.active=test,可以观察到服务端口被设置为8002,
也就是测试环境的配置(test)
执行java -jar xxx.jar --spring.profiles.active=prod,可以观察到服务端口被设置为8003,
也就是生产环境的配置(prod)
按照上面的实验,可以如下总结多环境的配置思路:
application.properties中配置通用内容,并设置spring.profiles.active=dev,以开发环境为默认配置
application-{profile}.properties中配置各个环境不同的内容
通过命令行方式去激活不同环境的配置
介绍
很多项目中都会有配置文件,比如说配置 数据库的连接项目常量定义等等参数配置,那么这些参数在项目启动的时候就会被读到指定的容器中,可供项目初始化将必要的对象都初始化完成,如果参数配置错误或参数没有定义,项目在启动的时候就会相应的报错,提示某某参数没有定义或者不对,今天我给大家介绍一下springboot如何读取这些初始化参数,让项目启动时候能够自动的加载,并且应用到我们的项目中。
一、spring boot 默认定义
默认参数文件名称为 application.properties 或者 application.yaml ,这两种格式选其中任意一种可以作为项目启动的配置文件,两种格式有所不同
properties 格式 my.web.name=eshengtai 类似键值对的方式
yaml 格式
my:
web:
name:eshengtai
当然也可以自定义配置文件,作为项目的其他配置参数文件,比如 redis.properties,dataSource.properties可以单独定义配置文件,让springboot在启动时帮我们加载,在程序中可以方便的使用
二、读取配置文件
1、读取application.properties配置文件中,自定义的参数
project.name=eshengtai
project.url=www.eshengtai.net
读取参数自定义内容
/**
* 读取application properties文件内容
* @author wolf.yansl
*
*/
@Component
public class ApplicationProperties {
@Value("${project.name}")
private String name;
@Value("${project.url}")
private String url;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
2、读取自定义properties文件,读取自定义参数,eshengtai.properties
spring.boot=boot
spring.url=spring.io
读取参数定义内容
/**
* 读取自定义配置文件,eshengtai.properties
* @author wolf.yansl
*
*/
@Component
@PropertySource("classpath:eshengtai.properties")
public class EShengTaiProperties {
@Value("${spring.boot}")
private String springName;
@Value("${spring.url}")
private String url;
public String getSpringName() {
return springName;
}
public void setSpringName(String springName) {
this.springName = springName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
3、动态切换配置文件properties文件,在不同的开发环境下,如何可以达到,只需要修改参数就可以动态读取不同的参数文件,从而方便快捷的使用properties的内容
配置文件有4个
application-dev.properties 开发环境 ,server.port=1111服务器端口1111
application-prod.properties 正式环境 ,server.port=2222服务器端口2222
application-test.properties 测试环境 ,server.port=3333服务器端口3333
application.properties 主要启动配置文件,配置切换启动读哪个文件初始化环境 spring.profiles.active 动态切换读取配置文件,修改服务器的访问端口变化,测试
spring.profiles.active=dev #springboot启动读取 application-dev.properties,并且访问端口为1111
spring.profiles.active=prod #springboot启动读取 application-prod.properties,并且访问端口为2222
spring.profiles.active=test #springboot启动读取 application-.propertiestt,并且访问端口为3333