配置不同生产环境

本文适用于开发环境下需要打包项目至生产环境,避免开发环境的配置文件泄露。

设置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.yamlapplication-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>

spring boot实现不同生产环境下的文件配置的更多相关文章

  1. Spring Boot项目在多环境下(开发、生产或测试环境)调用不同配置文件方式

    写在前面 最近由于项目要求,原先的项目只有开发环境的项目配置,后来不利于线上测试,于是,最近对于SpringBoot这部分多环境配置在网上查找了相关资料,并实现了配置,于是为了防止遗忘,特在此进行总结 ...

  2. spring boot profiles 实现多环境下配置切换 docker版

    1,前言 开发环境总需要调试,docker直接部署不需要调试,环境配置不一样,这里的目的只是,在docker文件环境与开发环境使用不同的配置文件,项目结构如下 2,设置项目配置文件 默认配置文件 ap ...

  3. 读取spring boot项目中resource目录下的文件

    在开发中, 我们常常要将我们的配置文件或者模板文件放在我们的resource目录中. 如下 而在spring boot的项目中, 我们运行的是一个jar包, 并没有解压 所以当我们使用以下方式获取文件 ...

  4. 生产环境下yum的配置

    介绍在局域网里面配置本地yum源环境: 在私有云的服务器上配置本地yum源 在局域网中有多台服务器,网段为192.168.10.0/24在其中一台10.11配置本地yum源,其他服务器中的baseur ...

  5. spring boot--日志、开发和生产环境切换、自定义配置(环境变量)

    Spring Boot日志常用配置: # 日志输出的地址:Spring Boot默认并没有进行文件输出,只在控制台中进行了打印 logging.file=/home/zhou # 日志级别 debug ...

  6. Python开发程序:生产环境下实时统计网站访问日志信息

    日志实时分析系统 生产环境下有需求:要每搁五分钟统计下这段时间内的网站访问量.UV.独立IP等信息,用直观的数据表格表现出来 环境描述: 网站为Nginx服务,系统每日凌晨会对日志进行分割,拷贝到其他 ...

  7. 生产环境下一定要开启mysqlbinlog

    在没有备份数据库的情况下,可以用binlog进行恢复 在生产环境下安全第一,损失一点点效率换来的安全还是值得的. http://www.cnblogs.com/zc22/archive/2013/06 ...

  8. mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法

    mysql在生产环境下有大量锁表,又不允许重启的情况下的处理办法 满头大汗的宅鸟该怎么办呢? mysql -u root -e "show processlist"|grep -i ...

  9. Mysql迁移工具在生产环境下的使用

    在产品迭代开发发布过程中,由于业务需求的增加,数据库难免会有结构调整等操作. 在每个版本发布过程中怎么控制每个版本server端程序与数据库版本保持一致,以及数 据库升级.回滚等操作. 本博文宅鸟将向 ...

随机推荐

  1. Mockito+Junit5单元测试

    参考: https://segmentfault.com/a/1190000006746409 https://waylau.com/mockito-quick-start/ 1.引入依赖 下面这个最 ...

  2. windbg的时间旅行实现对 C# 程序的终极调试

    一:什么是时间旅行 简而言之就是把程序的执行流拍成vlog,这样就可以对 vlog 快进或者倒退,还可以分享给别人做进一步的分析,是不是想都不敢想. 很开心的是 windbg preview 版本中已 ...

  3. 好客租房10-jsx的基本使用

    1.1createElement()的问题 1繁琐不简洁 2不直观 无法一眼看出所描述的结构 3不优雅 用户体验不爽 React.createElement("div",     ...

  4. 第30章 LeetCode 72 编辑距离

    每日一句 A flower cannot blossom without sunshine, and man cannot live without love. 花没有阳光就不能盛开,人没有爱就不能生 ...

  5. python3在使用类基础时,遇到错误TypeError: module.**init**() takes at most 2 arguments (3 given)

    python3在使用类基础时,遇到错误TypeError: module.init() takes at most 2 arguments (3 given) 1.原因:直接导入的py文件,而没有导入 ...

  6. Dubbo的基本使用

    Dubbo分为提供者和消费方  并且两者都要注册到ZK上 提供者 注解    @Service   这是dubbo包下的 消费组 注解    @Reference 远程注入 第一步导入依赖 <! ...

  7. 竟然还有人说ArrayList是2倍扩容,今天带你手撕ArrayList源码

    ArrayList是我们开发中最常用到的集合,但是很多人对它的源码并不了解,导致面试时,面试官问的稍微深入的问题,就无法作答,今天我们一起来探究一下ArrayList源码. 1. 简介 ArrayLi ...

  8. 开源流程引擎osworkflow、jbpm、activiti、flowable、camunda哪个好?

    市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.其中:Jbpm4.Activiti.Flowable.camunda四个框架同宗同源, ...

  9. 获取请求体数据 POST

    POST获取请求体 请求体中封装了 POST请求的请求参数 获取流对象 再从流对象中那数据 一种字节流 一种字符流 BufferedReader getReader()获取字符输入流 只能操作字符 S ...

  10. CODING DevOps 助力中化信息打造新一代研效平台,驱动“线上中化”新未来

    中化信息技术有限公司,简称"中化信息",是世界 500 强企业中国中化控股有限责任公司(简称"中国中化")的全资直属公司,依托于中国中化的信息化建设实践,建立起 ...