转自:spring.profiles.active和spring.profiles.include的使用及区别说明下文笔者讲述spring.profiles.active和spring.profiles.include的区别简介说明,如下所示我们都知道在日常开发中,开发|测试|生产环境都拥有不同的配置信息如jdbc地址、ip、端口等此时为了避免每次都修改全部信息我们则可以采用以上的属性处理此类异常spring.profiles.active属性例配置文件,可使用以下方式定义application-${profile}.properties开发环境配置文件:application-dev.properties测试环境配置文件:application-test.properties生产环境配置文件:application-prod.propertiesapplication.properties配置则可以根据不同的属性切换到不同的配置文件spring.profiles.active属性值为${profile}。spring.profiles.activedev:用application-dev.propertiesspring.profiles.activetest:启用application-test.propertiesspring.profiles.activeprod:启用application-prod.properties例:java -jar xx.jar --spring.profiles.activetest注意事项:此命令的优先级最高当程序启动时,加入此环境变量时则会自动启用 application-test.properties配置文件spring.profiles.include属性当我们需在开发环境,再次细分配置信息,如:application-dev1.properties中存储jdbc信息application-dev2.properties中存储ip、端口信息即在启用application-dev.properties开发环境(主)配置文件时同时启用application-dev1.properties和application-dev2.propertie。此时可使用spring.profiles.include属性同时启用其他的profile配置方法当properties文件:spring.profiles.includedev1,dev2yaml文件配置方法spring.profiles.include:-dev1-dev2或spring.profiles.include:dev1,dev2spring.profiles.active和spring.profiles.include的使用及区别配置方式不同配置方式一:application.properties中配置spring.profiles.activedev的同时指定spring.profiles.includedev1,dev2配置方式二:application.properties中配置spring.profiles.activedevapplication-dev.properties中配置spring.profiles.includedev1,dev2使用application-dev.properties时自动就激活了dev1、dev2两个文件,不用再次指定区别第一种方式启动时控制台打印The following profiles are active:dev1,dev2,dev第二种方式启动时控制台打印The following profiles are active:dev, dev1,dev2按照顺序后面的覆盖前面例:application-dev.properties配置my.namedevmy.height190#同时触发dev1和dev2的激活spring.profiles.includedev1,dev2application-dev1.properties配置my.namedev1my.height191application-dev2.properties配置my.namedev2#my.height192application-prod.properties配置my.nameprodmy.height182application-prod1.properties配置my.nameprod1my.height188application-prod2.properties配置my.nameprod2my.height182测试一在application.properties配置文件中指定#激活的是开发环境配置文件spring.profiles.activedev启动时不指定参数结果:打印的内容为:姓名dev2,身高191----具体原因如下所示----先加载application.properties再加载application-dev.propertiesmy.namedevmy.height190加载application-dev1.propertiesmy.namedev1my.height191加载application-dev2.propertiesmy.namedev2my.height191测试二在测试一的基础上启动时指定参数–spring.profiles.activeprod优先级最高会使用生产环境配置文件以上配置信息将输出以下信息打印的内容为姓名prod,身高182测试三在application.properties配置文件中指定#激活的是生产环境配置文件spring.profiles.activeprod#同时触发prod1和prod2的激活spring.profiles.includeprod1启动时不指定参数—运行以上信息将输出以下信息The following profiles are active: prod1,prod2,prod打印的内容为姓名prod,身高182