解决在SpringBoot设置的变量属性 spring.profiles.active不起作用
- 前因后果
- 项目准备上线测试发现之前反复修改配置很烦,而且还老是会忘记
spring.profiles.active不起作用)
前因后果
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
项目准备上线测试发现之前反复修改配置很烦,而且还老是会忘记
pring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。
profile的配置文件可以按照application.properyies的放置位置一样,放于以下四个位置:
- 当前目录的 “/config”的子目录下;
- 当前目录下;
- classpath根目录的“/config”包下;
- classpath的根目录下
本人使用场景
- 首先在我们的maven仓库添加上必要的依赖
//依赖
<profiles>
<!--开发环境 -->
<profile>
<id>druid</id>
<properties>
<profiles.active>druid</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--测试环境 -->
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
</profile>
<!--生产环境 -->
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
</profile>
</profiles>
- 添加依赖后在idea maven 插件中会显示你的环境
- 然后你的配置文件复制几份,我这里是复制2份,因为之前我是有开发环境的,所以我只需要在添加生产(prod)环境和测试(环境)test,注意复制文件名改成对应的
- 准备工作做好后,我们修改主配置文件的 active属性 (active: “@profiles.active@” )
然后我就帅气的启动了我的项目,却一直读取不到我的配置文件(如同)
检查半天,始终查不到不起作用的原因,最后发现在pom文件中添加如下代码后,便可以了。
// 在resource目录文件中有这些文件,而且也能生成到target中
<resources>
<resource>
<directory>src/main/resources</directory>
<!--用于替换resources里的变量-->
<filtering>true</filtering>
</resource>
</resources>
<finalName>${project.artifactId}</finalName>
最后在启动项目就没问题了。
IDEA项目文件中.idea文件夹和.iml文件含义及作用里写自定义目录标 [1]: http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference
[2]: https://mermaidjs.github.io/
[3]: https://mermaidjs.github.io/
[4]: http://adrai.github.io/flowchart.js/