解决spring boot环境切换失效的问题

这篇文章主要介绍了解决spring boot环境切换失效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

目录

spring boot环境切换失效

概述

解决

springboot多环境配置文件无效

springboot配置文件无效

spring boot环境切换失效

概述

最近在使用-Dspring.profiles.active=te 来切换spring-boot的环境时,发现日志打印的是:

...ApplicationStartUp - The following profiles are active: de

也就是说,参数失效了。

debug调试时,发现spring-boot读取的也是de,不是te。

解决

下载了一个新的tomcat,然后重新发布程序,设置参数,启动,发现环境正常切换了过来。

springboot多环境配置文件无效

springboot配置文件无效

这个坑必须发出来,真是恶心!不管是yml还是properties格式配置文件都有这问题。

application.properties

spring.profiles.active=dev

application-dev.properties

server.port=9000 server.context-path=/h2

这个application-dev.properties的第一行必须是注释或者为空,否则里面配置无法解析。

也就是第一行不能顶格写!

如下两种写法是正确的:

server.port=9000 server.context-path=/h2 # 第一行必须为空或者注释 server.port=9000 server.context-path=/h2

如果不这样,你的application-dev.properties就是废物,一点用都没有,监听端口还是认的8080,但是第二行及以后的配置可以正常解析到。

因为当启用了多环境配置后,环境配置文件比如application-dev.properties,springboot框架的代码实现逻辑就强行占用了第一行,这个占用一点用处都没有。springboot就是这么霸道,就是要占用第一行,你能怎么样,有本事你也写个springboot,从第18行开始解析配置。

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...