主页 > 互联网  > 

spring.profiles.active和spring.profiles.include的使用及区别说明

spring.profiles.active和spring.profiles.include的使用及区别说明

转自:

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.properties

application.properties配置 则可以根据不同的属性切换到不同的配置文件 spring.profiles.active,属性值为${profile}。

spring.profiles.active=dev:用application-dev.properties spring.profiles.active=test:启用application-test.properties spring.profiles.active=prod:启用application-prod.properties

例:

java -jar xx.jar --spring.profiles.active=test 注意事项: 此命令的优先级最高 当程序启动时,加入此环境变量时 则会自动启用 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.include=dev1,dev2 yaml文件配置方法 spring.profiles.include: -dev1 -dev2 或 spring.profiles.include:dev1,dev2

spring.profiles.active和spring.profiles.include的使用及区别

配置方式不同

配置方式一: application.properties中,配置spring.profiles.active=dev的同时指定spring.profiles.include=dev1,dev2 配置方式二: application.properties中,配置spring.profiles.active=dev,application-dev.properties中 配置spring.profiles.include=dev1,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.name=dev my.height=190

#同时触发dev1和dev2的激活 spring.profiles.include=dev1,dev2

application-dev1.properties配置:

my.name=dev1 my.height=191

application-dev2.properties配置:

my.name=dev2 #my.height=192

application-prod.properties配置:

my.name=prod my.height=182

application-prod1.properties配置:

my.name=prod1 my.height=188

application-prod2.properties配置:

my.name=prod2 my.height=182

测试一: 在application.properties配置文件中,指定

#激活的是开发环境配置文件 spring.profiles.active=dev

启动时不指定参数 结果: 打印的内容为:姓名:dev2,身高:191

----具体原因如下所示---- 先加载application.properties 再加载application-dev.properties, my.name=dev my.height=190 加载application-dev1.properties, my.name=dev1 my.height=191 加载application-dev2.properties, my.name=dev2 my.height=191

测试二: 在测试一的基础上,启动时指定参数:–spring.profiles.active=prod 优先级最高,会使用生产环境配置文件 以上配置信息,将输出以下信息 打印的内容为:姓名:prod,身高:182

测试三: 在application.properties配置文件中,指定

#激活的是生产环境配置文件 spring.profiles.active=prod #同时触发prod1和prod2的激活 spring.profiles.include=prod1

启动时不指定参数 —运行以上信息,将输出以下信息 The following profiles are active: prod1,prod2,prod 打印的内容为:姓名:prod,身高:182

标签:

spring.profiles.active和spring.profiles.include的使用及区别说明由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“spring.profiles.active和spring.profiles.include的使用及区别说明