SpringBoot使用(二)配置文件拆分

  • A+

Spring Boot可以外部化程序配置,以便可以在不同环境中使用相同的应用程序代码;当然Spring Boot可以将配置文件进行拆分,以便于激活不同的运行环境。可以在单个文件中区分多环境,也可以将单个文件拆分成多配置文件。

1.SpringBoot默认加载的配置文件,激活的配置项

  • SpringBoot默认从如下4个位置加载配置文件:classpath:/,classpath:/config/,file:./,file:./config/
  • SpringBoot默认加载application.ymlapplication.propertiesapplication-default.ymlapplication-default.properties,这4种命名方式的配置文件。
  • 我们可以使用spring.profiles.active配置激活指定自定义配置,若没有,就使用系统默认配置,可从console控制台查看,如下:
    INFO 23520 --- [           main] .SpringBootConfigurationSplitApplication : No active profile set, falling back to default profiles: default
    

2.SpringBoot单文件配置

  • application-{default}的配置文件中,我们可以拆分成不同环境,操作如下:
    1. 使用spring.profiles.active标识需要激活的配置环境
    2. 使用---分割不同的配置环境
    3. spring.profiles指定配置环境名称
  • 范例:
    spring:
      profiles:
        active: profilesF
    user-defined:
      common-configuration: hi this common config!!
    ---
    server:
      port: 8000
    spring:
      application:
        name: SplitF
      profiles: profilesF
    ---
    server:
      port: 8001
    spring:
      application:
        name: SplitS
      profiles: profilesS
    
    1. 公有配置与spring.profiles.active同级
    2. spring.profiles.active用来激活,不同环境中配置的spring.profiles

3.SpringBoot多文件配置

  • 在实际中我们总是希望将配置分散在不同的配置文件中,将通用的配置放置在单独的文件中,将测试和开发环境放置在别的文件中。
    1. 使用application-{profile}.properties的形式定义特殊的配置文件。
    2. 使用spring.profiles.include,或spring.profiles.active将多个配置文件在主配置文件中激活。
  • 范例:
    1. 配置文件包括,application.ymlapplication-comm.ymlapplication-dev.ymlapplication-test.yml
    2. application-comm.yml中放置公有配置
      user-defined:
          common-configuration: hi this common config!!
      
    3. application-dev.ymlapplication-test.yml中分别定义一个开发环境和测试环境
      user-defined:
        dev-configuration: hi this dev config!!
      server:
        port: 8888
      
      user-defined:
        test-configuration: hi this dev config!!
      server:
        port: 6666
      
    4. application.yml中引入,激活配置文件
      spring:
        profiles:
          #include: comm,dev
          active:
            - comm
            - dev
      

4.总结

zhangfeng

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: