springboot 多环境配置,spring boot 不同环境切换配置

  springboot 多环境配置,spring boot 不同环境切换配置

  00-1010后台解决方案1。创建新的配置文件2。测试服务调用2.1创建新的调用类2.2使用示例项目3。扩展练习3.1使用注释来标记配置,首先定义一个接口3.2分别定义两个实现类来实现它3.3修改application.yml文件来激活配置3.4添加新的查询方法3.5使用一个或多个配置文件并激活标记文件3.6切换日志文件。

  00-1010很多时候我们项目的环境配置在开发环境和生产环境之间是不一样的,比如数据库配置。在开发中,我们通常使用测试数据库,而在生产环境中,我们使用官方数据。这时,我们可以使用profile来配置不同的配置文件或不同环境中的配置。

  

目录

spring boot允许您根据某种格式(应用程序-{profile})定义多个配置文件。属性),然后通过spring.profiles.active激活application.properyies中的一个或多个配置文件,如果没有未指定任何配置文件的配置文件,spring boot将默认启动application-default.properties。

 

  00-1010注:配置文件优先级(从高到低): bootstrap . properties-bootstrap . yml-application . properties-application . yml

  的。这里使用yml文件格式,以下文件是在src/main/resources下新创建的

  application.yml (主配置)

  服务器:端口3360 9990 spring :配置文件3360活动3360 dev #选定配置#自定义默认值curvar 3360 context 3360 default . curvarapplication-pro.yml (开发配置)

  #模拟开发配置曲线:上下文:“开发配置变量”application-pro.yml(生产配置)

  #模拟生产配置曲线:上下文: 生产配置变量

  

背景

 

  

解决方案

@ Slf4j @ RestControllerpublic class index controller { @ Value( $ { curvar . context } )私有字符串cusvar/* * *.*使用哪个配置* * @ return */@ request mapping(/test )公共字符串test () {log.debug (use 3360 [{}],cus var);返回“使用配置:”cus var;}}

 

  00-1010打开浏览器,输入:http://localhost:9990/test

  

一、新建配置文件

 

  

二、 服务调用测试

公共接口连接器{ String configure();}

 

  

2.1 新建调用类

导入org . spring framework . context . annotation . profile;导入org . spring framework . stereotype.component;@Component@Profile(pro-db)//标记文件,环境开关公共类pro连接器实现连接器{@ override public

 

  String configure() { return "pro生产标记文件..."; }}

import org.springframework.context.annotation.Profile;import org.springframework.stereotype.Component;@Component@Profile("dev-db")//标记文件,环境切换public class DevConnector implements Connector { @Override public String configure() { return "dev开发标记文件..."; }}

 

  

3.3 修改application.yml文件激活配置

spring: profiles: #active: dev #选定配置 active: pro-db #选定配置激活标记文件

 

  

3.4 新增查询方法

@Autowired private Connector connector; //注入 /** * . * 使用哪一个被标记文件 * * @return */ @GetMapping("/proFile") public String proFile() { log.debug("使用配置文件:[{}]", connector.configure()); return connector.configure(); }

打开浏览器输入:http://localhost:9990/proFile

 

  

 

  

 

  

3.5 使用一个或多个配置文件及激活标记文件

修改application.yml文件,进行属性叠加

 

  

spring: profiles: include: pro,dev-db #指定配置文件及激活标记文件 #active: pro-db #选定标记文件

新增查询方法

 

  

/** * . * 使用哪一个配置文件及标记文件 * * @return */ @GetMapping("/include") public String include() { return String.format("使用配置文件:%s,使用标记文件:%s", cusvar, connector.configure()); }

打开浏览器输入:http://localhost:9990/include

 

  

 

  

 

  

3.6 切换日志文件

新建logback文件

 

  

 

  logback-pro.yml (生产日志)

  

<?xml version="1.0" encoding="UTF-8"?><configuration debug="true"> <contextName>logback</contextName> <!--定义文件名及存储路径--> <property name="log.path" value="./pro.log"/> <!-- ConsoleAppender:控制台设置 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>debug</level> </filter> <encoder> <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} [%file : %line] - %msg%n </pattern> </encoder> </appender> <!--RollingFileAppender:滚动记录文件,先将日志记录到指定文件--> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.%i.gz</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <!-- 每产生一个日志文件,该日志文件的保存期限为7天 --> <maxHistory>7</maxHistory> </rollingPolicy> <encoder> <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n </pattern> </encoder> </appender> <!--将上述name名称:console:标签名称为debug--> <root level="debug"> <appender-ref ref="console"/> </root> <!--将上述name名称:file:标签名称为info--> <root level="info"> <appender-ref ref="file"/> </root> <logger name="org.springframework.scheduling" level="error"/> <Logger name="org.apache.catalina.util.LifecycleBase" level="error"/> <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn"/> <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn"/> <Logger name="org.springframework" level="info"/> <Logger name="org.freeswitch.esl" level="warn"/> <logger name="java.sql" level="error"/> <logger name="org.mybatis" level="info"/><!--mybatis的日志级别为info--> <logger name="com.example" level="debug"/><!--com.hy包下的日志级别为debug--></configuration>

修改application.yml文件,配置日志属性

 

  

spring: profiles: #include: pro,dev-db #指定配置文件及激活标记文件 #active: pro-db #选定标记文件 active: pro #指定配置文件#日志logging: config: classpath:logback-${spring.profiles.active}.xml #本地IDEA启动配置 #config: config/logback-${spring.profiles.active}.xml # java -jar 包启动配置

项目启动访问接口,控制台打印日志

 

  

 

  友情提示:jar运行指定配置

  

java -jar xxx.jar --spring.profiles.active=dev #指定dev配置java -jar xxx.jar --server.port=9090 #指定启动端口

以上就是SpringBoot实现多环境配置文件切换教程详解的详细内容,更多关于SpringBoot配置文件切换的资料请关注盛行IT其它相关文章!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: