spring boot实现不同生产环境下的文件配置
配置不同生产环境
本文适用于开发环境下需要打包项目至生产环境,避免开发环境的配置文件泄露。
设置maven
作用:1. 手动调节运行时的不同环境 2. 打包时可以不会有其它环境的文件
注:每次换环境前(打包前)记得手动clean清楚,因为idea不会在换环境后自动清除另一个环境的文件
在pom文件中加
-
在依赖
前加 <!--分别设置开发,生产环境--> <profiles> <!-- 开发环境 --> <profile> <id>dev</id> <activation> <!--设置默认为dev环境--> <activeByDefault>true</activeByDefault> </activation> <properties> <environment>dev</environment> </properties> </profile> <!-- 生产环境 --> <profile> <id>prod</id> <activation> <!--不设置该环境为默认环境--> <activeByDefault>false</activeByDefault> </activation> <properties> <environment>prod</environment> </properties> </profile> </profiles>
-
在
标签中放该代码 <resources> <!--排除配置文件--> <resource> <directory>src/main/resources</directory> <!--先排除所有的配置文件--> <excludes> <!--使用通配符,当然可以定义多个exclude标签进行排除--> <exclude>application*.yaml</exclude> </excludes> </resource> <!--根据激活条件引入打包所需的配置和文件--> <resource> <directory>src/main/resources</directory> <!--引入所需环境的配置文件--> <filtering>true</filtering> <includes> <include>application.yaml</include> <!--根据maven选择环境导入配置文件--> <include>application-${environment}.yaml</include> </includes> </resource> </resources>
设置三个yaml
application.yaml
、application-dev.yaml
、application-prod.yaml
//application.yaml
//方法一:弊端(打包时会把dev 和 prod环境的配置文件都会打包),无法真正做到多环境开发
spring:
profiles:
active: dev //这里是写配置文件命名-后的单词
//方法二:通过maven来告诉springboot应该打包哪个环境的文件(优点:不会包含其他环境的配置文件)
spring:
profiles:
active: '@environment@' #这里的单词要手动打,等有提示才行,不然会失败。注意YAML配置文件需要加单引号,否则会报错。
//application-dev.yaml
server:
port: 8080
//application-prod.yaml
server:
port: 80
注意:
如果有设置日志打印,想要不同环境日志打印不同需要去日志打印的配置文件改这些:把上面上部分改成下部分
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
------------------------------------------------------------------
<!--dev环境下的日志输出方式-->
<springProfile name="dev">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</springProfile>
<!--prod环境下的日志输出方式-->
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="FILE"/>
</root>
</springProfile>
本文来自博客园,作者:不吃紫菜,遵循CC 4.0 BY-SA版权协议,
转载请附上原文出处链接:https://www.cnblogs.com/buchizicai/p/16517358.html及本声明;
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。