zoukankan      html  css  js  c++  java
  • springboot中spring.profiles.include的妙用

            我们在开发Spring Boot应用时,通常同一套程序会被应用和安装到几个不同的环境,比如:开发、测试、生产等。其中每个环境的数据库地址、服务器端口等等配置都会不同,如果在为不同环境打包时都要频繁修改配置文件的话,那必将是个非常繁琐且容易发生错误的事。

           对于多环境的配置,各种项目构建工具或是框架的基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包,Spring Boot也不例外,或者说更加简单。

           在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

    •    application-dev.properties:开发环境
    •    application-test.properties:测试环境
    •    application-prod.properties:生产环境

           至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。

    如:spring.profiles.active=test就会加载application-test.properties配置文件内容。

    下面,以不同环境配置不同的服务端口为例,进行样例实验。

         针对各环境新建不同的配置文件application-dev.propertiesapplication-test.propertiesapplication-prod.properties

         在这三个文件均都设置不同的server.port属性,如:dev环境设置为8080,test环境设置为9090,prod环境设置为80

         application.properties中设置spring.profiles.active=dev,就是说默认以dev环境设置


    测试不同配置的加载:
         执行java -jar xxx.jar,可以观察到服务端口被设置为8080,也就是默认的开发环境(dev)

         执行java -jar xxx.jar --spring.profiles.active=test,可以观察到服务端口被设置为9090,也就是测试环境的配置(test)

         执行java -jar xxx.jar --spring.profiles.active=prod,可以观察到服务端口被设置为80,也就是生产环境的配置(prod)


    按照上面的实验,可以如下总结多环境的配置思路:
       application.properties中配置通用内容,并设置spring.profiles.active=dev,以开发环境为默认配置
       application-{profile}.properties中配置各个环境不同的内容
    通过命令行方式去激活不同环境的配置。

    另外: 在yml配置文件中配置List<String> 的值,可以采用  -子项 的方式,如 :

    spring.profiles.include:

      - 子项1

      - 子项2

      - 子项3   

    也可以采用 逗号分隔元素列表的方式,如: 

    spring.profiles.include: 子项1,子项2,子项3    

  • 相关阅读:
    POJ 3253 Fence Repair
    POJ 2431 Expedition
    NYOJ 269 VF
    NYOJ 456 邮票分你一半
    划分数问题 DP
    HDU 1253 胜利大逃亡
    NYOJ 294 Bot Trust
    NYOJ 36 最长公共子序列
    HDU 1555 How many days?
    01背包 (大数据)
  • 原文地址:https://www.cnblogs.com/grasp/p/11473826.html
Copyright © 2011-2022 走看看