当前位置: 首页 > news >正文

Spring Boot多环境配置

Spring Boot的针对不同的环境创建不同的配置文件,

语法结构:application-{profile}.properties

profile:代表的就是一套环境

1.需求

application-dev.yml 开发环境       端口8090

application-test.yml  测试环境       端口8091

application-prod.yml  生产环境      端口8092

1.1.多个yml方式

1.2.运行项目:

在application.yml 中激活指定的配置文件:

spring:profiles:active: prod #测试开发环境

1.3.单个yml方式

spring:profiles.active: dev# 开发环境配置
spring:profiles: dev
server:port: 8080# 测试环境配置
spring:profiles: test
server:port: 8091# 生产环境配置
spring:profiles: prodserver:port: 8092

2.logback日志记录器

2.1.logback介绍

logback是log4j团队创建的开源日志组件,与log4j类似但是比log4j更强大,是log4j的改良版本。主要优势在于:

a) 更快的实现,logback内核重写过,是的性能有了很大的提升,内存占用也更小。

b) logback-classic对slf4j进行了更好的集成

c) 自动重新加载配置文件,当配置文件修改后,logback-classic能自动重新加载配置文件

d) 配置文件能够处理不同的情况,开发人员在不同的环境下(开发,测试,生产)切换的时候,不需要创建多个

​    文件,可以通过<if><else><then>标签来实现
e) 自动压缩已经打出来的日志文件:RollingFileAppender在产生新文件的时候,会自动压缩已经打印出来的日志

​    文件。而且这个压缩的过程是一个异步的过程。

2.2.logback.xml

<?xml version="1.0" encoding="UTF-8" ?><configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->  <property name="LOG_HOME" value="${catalina.base:-.}/logs/" />  <!-- 控制台输出 -->   <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender"><!-- 日志输出编码 -->  <layout class="ch.qos.logback.classic.PatternLayout">   <!--日志输出格式:%d表示日期时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度%logger{50} 表示class的全名最长50个字符,否则按照句点分割%msg:日志消息%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   </pattern>   </layout>   </appender>   <!-- 按照每天生成日志文件 -->   <appender name="RollingFile"  class="ch.qos.logback.core.rolling.RollingFileAppender">   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件名--><FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.log</FileNamePattern>   <MaxHistory>30</MaxHistory></rollingPolicy>   <layout class="ch.qos.logback.classic.PatternLayout">  <!--日志输出格式:%d表示日期时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度%logger{50} 表示class的全名最长50个字符,否则按照句点分割%msg:日志消息%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n   </pattern>   </layout> <!--日志文件最大的大小--><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><MaxFileSize>10MB</MaxFileSize></triggeringPolicy></appender>     <!-- 日志输出级别 --><root level="DEBUG">   <appender-ref ref="Stdout" />   <appender-ref ref="RollingFile" />   </root> <!--日志异步到数据库 -->  
<!--     <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">日志异步到数据库 <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">连接池 <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource"><driverClass>com.mysql.jdbc.Driver</driverClass><url>jdbc:mysql://127.0.0.1:3306/databaseName</url><user>root</user><password>root</password></dataSource></connectionSource></appender> --></configuration>

3.总结

   springboot的配置文件
    1、application.properties
        server.port=9999
        server.servlet.context-path=/springboot-helloworld
    2、application.yml(树状接口)
        server:
            port: 9999
            servlet:
                context-path: /springboot-helloworld
        yml语法:
            ①“.”------->“:”
            ②“=”------->“:空格”
            ③空格缩进

相关文章:

  • Winform使用Webview2(Edge浏览器核心)实现精美教程目录
  • PHP AES加解密示例【详解】
  • Qt 容器 Qlist
  • 伪装实例分割模型:OSFormer模型及论文解析
  • 51单片机定时器
  • Tomcat快速入门
  • Python基础之异常处理
  • springboot配置项动态刷新
  • 应用层—HTTPS详解(对称加密、非对称加密、密钥……)
  • 5G_系统同步机制(八)
  • JVM篇--垃圾回收器高频面试题
  • R语言【cli】——ansi_trimws():从ANSI字符串中删除前导和/或尾随空格
  • 链表|数据结构|C语言深入学习
  • c++设计模式之单例模式
  • 力扣(leetcode)第35题搜索插入位置(Python)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 「面试题」如何实现一个圣杯布局?
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Docker: 容器互访的三种方式
  • ES6 ...操作符
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • java8 Stream Pipelines 浅析
  • magento2项目上线注意事项
  • TypeScript实现数据结构(一)栈,队列,链表
  • 阿里云购买磁盘后挂载
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 给新手的新浪微博 SDK 集成教程【一】
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 浅谈Golang中select的用法
  • 人脸识别最新开发经验demo
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 我的面试准备过程--容器(更新中)
  • 自制字幕遮挡器
  • 2017年360最后一道编程题
  • #Lua:Lua调用C++生成的DLL库
  • (+4)2.2UML建模图
  • (10)STL算法之搜索(二) 二分查找
  • (三) diretfbrc详解
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)菜鸟学数据库(三)——存储过程
  • (转载)Google Chrome调试JS
  • .gitignore文件---让git自动忽略指定文件
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .net和jar包windows服务部署
  • :中兴通讯为何成功
  • @AliasFor注解
  • @JSONField或@JsonProperty注解使用
  • @Validated和@Valid校验参数区别