SpringBoot中配置文件及切换方式
作者:qq_25243147
SpringBoot配置文件及切换
介绍
(1)SpringBoot常用application.properties和application.yml作为配置文件,在不切换配置文件的情况下,两者同时生效,但application.properties优先级较高,如
person.name=wsh person.age=11
person: age: 18
@Component public class Person { @Value("${person.name}") private String name; @Value("${person.age}") private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Person person = (Person) o; return age == person.age && Objects.equals(name, person.name); } @Override public int hashCode() { return Objects.hash(name, age); } }
切换配置文件
(1)一般情况下,有测试环境和生产环境下的配置文件,如
(2)切换配置文件,则原有的application.properties和application.yml生效,切换的配置文件也生效,相同名字的配置会覆盖application.properties和application.yml中的配置
spring.profiles.active=test
springboot切换配置文件application-dev sit uat pro
省流
在application.yml文件中配置 spring.profiles.active=dev,springboot就会去找application-dev.yml
正文
公司里经常会碰到多个环境,通常会准备多个配置文件,而不是在同一个配置文件里改来改去。
以springboot项目为例,我们会准备这些配置文件:
application-dev.yml application-sit.yml application-uat.yml application-pro.yml application.yml
在application.yml添加如下配置
spring: profiles: active: dev # 此处dev可以换成sit,uat,pro # application.yml也可以换成application.properties文件,则是 spring.profiles.active=dev
这是springboot提供的application-{profile}.properties或者application-{profile}.yml
将花括号替换成你自定义的后缀。
springboot会先获取application.yml的配置,通过application.yml里的配置,去获取application-dev.yml的内容。
这样的话,就可以将共同的配置放在application.yml
另外两种方式
1.启动类中添加
//在启动类中,将原本的 SpringApplication.run(Application.class, args); //替换成如下 SpringApplicationBuilder builder=new SpringApplicationBuilder(Application.class); builder.application().setAdditionalProfiles("dev"); builder.run(args);
代码如下:
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplicationBuilder builder = new SpringApplicationBuilder(Application.class); builder.application().setAdditionalProfiles("dev"); builder.run(args); } }
2.启动jar包时通过命令行
java -jar xxx.jar --spring.profiles.active=pro
在机器上部署的时候可以使用这种方式。
开发的时候可以使用application.yml或者bootstrap.yml配置文件的方式
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。