Home >Java >javaTutorial >What are the priorities and methods of multi-environment configuration files in Java Spring Boot?

What are the priorities and methods of multi-environment configuration files in Java Spring Boot?

PHPz
PHPzforward
2023-04-22 23:28:062608browse

    Preface

    Question: How to separate the springboot project, development environment, test environment and production environment configuration files?

    Answer: Multiple profile file method

    1. Multiple environment configuration (profile)

    1.1. Properties file configuration

    application.properties: Main configuration file

    The main configuration file configuration determines which environment configuration file to load

      spring.profiles.active=dev

    According to spring.profiles. active value, choose to load different environment configurations

    application-{profile}.properties

    Development, test, and production environment configuration files:

    • application-dev.properties: development environment Configuration file

    • application-test.properties: Test environment configuration file

    • application-prod.properties: Production environment configuration file

    1.2. YML file configuration

    application.yml: Main configuration file
    Main configuration file configuration determines which environment configuration file to load

      spring:
          profiles:
              active:dev

    According to the spring.profiles.active value, choose to load different environment configurations

    application-{profile}.yml

    Development, test, and production environment configuration files:

    • application-dev.yml: Development environment configuration file

    • application-test.yml: Test environment configuration file

    • application-prod.yml: Production environment configuration file

    1.3. Modify the main configuration file and switch configuration

    1.3.1. Switch production configuration

    #默认配置
    server:
      port: 8080
    #切换配置
    spring:
      profiles:
        active: prod

    1.3.2. Switch development configuration

    #开发环境配置
    server:
      port: 8080
    #切换配置
    spring:
      profiles:
        active: dev

    1.3.3. Switch test configuration

    #测试环境配置
    server:
      port: 8080
    #切换配置
    spring:
      profiles:
        active: test

    1.4. Command line activation configuration file

    1.4.1. Command line activation configuration file

    java -jar springboot-0.0.1-SNAPSHOT.jar--spring.profiles.active=dev

    1.4.2, Virtual machine parameter activation

    java -Dspring.profiles.active=dev -jar springboot-0.0.1-SNAPSHOT.jar

    2, Default Configuration file

    When Spring Boot starts, it will scan the application.properties or apllication.yml files in the following five locations and use them as the default configuration file of Spring boot.

    • file:./config/"/

    • file:/config/

    • file :./

    • ##classpath:/config/

    • classpath:/

    2.1. file

    指当前项目根目录;

    2.2, classpath

    refers to the class path of the current project, that is, the resources directory.

    Note:

    • is located in the same The location's application.properties has a higher priority than application.yml

    • Files in all locations will be loaded, and high-priority configurations will overwrite low-priority configurations to form complementary configurations, that is:

      • When the same configuration content exists, the high-priority content will overwrite the low-priority content;

      • There are different When configuring content, the high-priority and low-priority configuration content are combined.

    3. External configuration file

    You can specify an external configuration file The path (the default configuration file is invalid)

    3.1, spring.config.location

      java -jar xxxx.jar --spring.config.location=外部文件

    3.2, spring.config.additional-location

    The default configuration file is publicly valid, and its The priority is the highest..

     java -jar xxxx.jar --spring.config.additional-location=外部文件
    案例
    4. Configuration file priority

    The following are commonly used Spring Boot configuration forms and their loading order (priority from high to low)

    • Command line parameters

    • Configuration file (YAML file, Properties file)

    • @Configuration @ on the annotation class PropertySource Specified configuration file

    • Default properties specified by SpringApplication.setDefaultProperties

    Configuration file

    What are the priorities and methods of multi-environment configuration files in Java Spring Boot?

    The above is the detailed content of What are the priorities and methods of multi-environment configuration files in Java Spring Boot?. For more information, please follow other related articles on the PHP Chinese website!

    Statement:
    This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete