SpringBoot中配置文件及切换方式

 更新时间:2024年05月18日 08:45:55   作者:qq_25243147  
这篇文章主要介绍了SpringBoot中配置文件及切换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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配置文件的方式

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot整合mybatis实现简单的一对多级联查询功能

    springboot整合mybatis实现简单的一对多级联查询功能

    这篇文章主要介绍了springboot整合mybatis实现简单的一对多级联查询功能,分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • SpringBoot如何返回Json数据格式

    SpringBoot如何返回Json数据格式

    这篇文章主要介绍了SpringBoot如何返回Json数据格式问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Java解析XML的四种方式

    Java解析XML的四种方式

    本文详细讲解了Java解析XML的四种方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Java线程通信详解

    Java线程通信详解

    本篇文章主要介绍了Java线程通信问题,线程通信用来保证线程协调运行,有需要的朋友可以了解一下。
    2016-10-10
  • Java常用流程控制语句实现原理解析

    Java常用流程控制语句实现原理解析

    这篇文章主要介绍了Java常用流程控制语句实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Spring Bean的属性注入方式

    Spring Bean的属性注入方式

    这篇文章主要介绍了Spring Bean的属性注入方式的相关资料,需要的朋友可以参考下
    2018-02-02
  • 利用Java制作字符动画实例代码

    利用Java制作字符动画实例代码

    这篇文章主要给大家介绍了关于如何利用Java制作字符动画的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Java调用python代码的五种方式总结

    Java调用python代码的五种方式总结

    这篇文章主要给大家介绍了关于Java调用python代码的五种方式,在Java中调用Python函数的方法有很多种,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • 使用Stargate访问K8ssandra的过程之Springboot整合Cassandra

    使用Stargate访问K8ssandra的过程之Springboot整合Cassandra

    这篇文章主要介绍了使用Stargate访问K8ssandra的过程之Springboot整合Cassandra,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • SpringBoot @GroupSequenceProvider注解实现bean多属性联合校验的示例代码

    SpringBoot @GroupSequenceProvider注解实现bean多属性联合校验的示例代码

    这篇文章主要介绍了SpringBoot @GroupSequenceProvider注解实现bean多属性联合校验,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08

最新评论