(1)在windows下点击idea的启动,可以通过System.getProperty("spring.profiles.active")获取到dev值
(2)在mac下点击idea的启动,同样的配置,但通过System.getProperty("spring.profiles.active")时获取到的值是null;
对比:
(1)在windows启动时,控制台输出:
参数设置被直接以-Dspring.profiles.active=dev追加到了 java命令之后,是以虚拟机参数进行设置
(2)在mac启动时,控制台输出:
参数设置被直接以--spring.profiles.active=dev追加到了 启动类命令之后
在命令运行时,连续两个减号 --就是对application.properties中属性值进行赋值的标志。
那么在mac下可以通过设置VM options来达到windows相同的效果
这时,命令窗会出现:
但是这样的话就会出现多个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”声明的默认属性
idea设置springboot启动jvm参数,设置方式,通过ldea设置,编辑配置文件。参数说明参数说明-Xms初始化堆内存大小,eg.-Xms1G-Xmx堆内存最大值,eg.-Xms1G,通常与-Xms设置相同的值-XX:ReservedCodeCacheSize代码缓存,它是用来存储已编译方法生成的本地代码。代码缓存确实很少引起性能问题,但是一旦发生其影响可能是毁灭性的。如果代码缓存被占满,JVM会打印出一条警告消息,并切换到interpreted-only模式:JIT编译器被停用,字节码将不再会被编译成机器码。因此,应用程序将继续运行,但运行速度会降低一个数量级,直到有人注意到这个问题。就像其他内存区域一样,我们可以自定义代码缓存的大小。它们的参数都eg.-XX:ReservedCodeCacheSize=240m-XX:InitialC查看更多。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)