首页 > 编程语言 > 详细

mac下idea 设置spring.profiles.active自定义配置文件无效

时间:2020-03-06 20:20:35      阅读:1014      评论:0      收藏:0      [点我收藏+]

在mac下可以通过设置VM options

在springboot项目中,通过idea在配置spring.profiles.active

 
技术分享图片
配置图-1

(1)在windows下点击idea的启动,可以通过System.getProperty("spring.profiles.active")获取到dev值

(2)在mac下点击idea的启动,同样的配置,但通过System.getProperty("spring.profiles.active")时获取到的值是null;

对比:

(1)在windows启动时,控制台输出:

 
技术分享图片
windows环境启动控制台-1

参数设置被直接以-Dspring.profiles.active=dev追加到了 java命令之后,是以虚拟机参数进行设置

(2)在mac启动时,控制台输出:

 
技术分享图片
mac环境启动控制台-1

参数设置被直接以--spring.profiles.active=dev追加到了 启动类命令之后

在命令运行时,连续两个减号 --就是对application.properties中属性值进行赋值的标志。

那么在mac下可以通过设置VM options来达到windows相同的效果

 
技术分享图片
配置图-2

这时,命令窗会出现:

 
技术分享图片
mac环境启动控制台-2

        但是这样的话就会出现多个spring.profiles.active(-Dspring.profiles.active=dev和最末尾--spring.profiles.active=dev);那么两个值最终取的是哪个呢? 按照springboot配置加载优先级来看,最终程序中使用优先级更高的--spring.profiles.active;

        需要注意:-Dspring.profiles.active=dev是将值设置到了虚拟机中,通过System.getProperty("spring.profiles.active")可以获取到dev;但是使用--spring.profiles.active=dev使用System.getProperty("spring.profiles.active")是获取不到的。

 

        Spring Boot 所提供的配置优先级顺序比较复杂。按照优先级从高到低的顺序,具体的列表如下:

1.命令行参数。

2.通过 System.getProperties() 获取的 Java 系统参数。

3.操作系统环境变量。

4.从 java:comp/env 得到的 JNDI 属性。

5.通过 RandomValuePropertySource 生成的“random.*”属性。

6.应用 Jar 文件之外的属性文件。(通过spring.config.location参数)

7.应用 Jar 文件内部的属性文件。

8.在应用配置 Java 类(包含“@Configuration”注解的 Java 类)中通过“@PropertySource”注解声明的属性文件。

9.通过“SpringApplication.setDefaultProperties”声明的默认属性

mac下idea 设置spring.profiles.active自定义配置文件无效

原文:https://www.cnblogs.com/kkvt/p/12430278.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!