最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot實(shí)現(xiàn)多環(huán)境配置文件切換教程詳解

 更新時(shí)間:2022年03月30日 08:36:18   作者:南國(guó)以南i  
很多時(shí)候,我們項(xiàng)目在開發(fā)環(huán)境和生成環(huán)境的環(huán)境配置是不一樣的,例如,數(shù)據(jù)庫(kù)配置,這個(gè)時(shí)候就需要切換環(huán)境配置文件。本文將詳細(xì)講解SpringBoot如何切換配置文件,需要的可以參考一下

背景

很多時(shí)候,我們項(xiàng)目在開發(fā)環(huán)境和生成環(huán)境的環(huán)境配置是不一樣的,例如,數(shù)據(jù)庫(kù)配置,在開發(fā)的時(shí)候,我們一般用測(cè)試數(shù)據(jù)庫(kù),而在生產(chǎn)環(huán)境的時(shí)候,我們是用正式的數(shù)據(jù),這時(shí)候,我們可以利用profile在不同的環(huán)境下配置用不同的配置文件或者不同的配置。

解決方案

spring boot允許你通過(guò)命名約定按照一定的格式(application-{profile}.properties)來(lái)定義多個(gè)配置文件,然后通過(guò)在application.properyies通過(guò)spring.profiles.active來(lái)具體激活一個(gè)或者多個(gè)配置文件,如果沒有沒有指定任何profile的配置文件的話,spring boot默認(rèn)會(huì)啟動(dòng)application-default.properties。

一、新建配置文件

注:配置文件優(yōu)先級(jí)(由高到低):bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml

此處使用.yml文件格式,在src/main/resources下新建如下文件

application.yml (主配置)

server:
  port: 9990

spring:
  profiles:
    active: dev #選定配置


#自定義默認(rèn)值
curvar:
  context: default.curvar

application-pro.yml (開發(fā)配置)

#模擬開發(fā)配置
curvar:
  context: "開發(fā)配置變量"

application-pro.yml(生產(chǎn)配置)

#模擬生產(chǎn)配置
curvar:
  context: "生產(chǎn)配置變量"

二、 服務(wù)調(diào)用測(cè)試

 2.1 新建調(diào)用類

@Slf4j
@RestController
public class IndexController {

    @Value("${curvar.context}")
    private String cusvar;

    /**
     * .
     * 使用哪一個(gè)配置
     *
     * @return
     */
    @RequestMapping("/test")
    public String test() {
        log.debug("使用:[{}]", cusvar);
        return "使用配置: " + cusvar;
    }

}

2.2 使用樣例項(xiàng)目

打開瀏覽器輸入:http://localhost:9990/test     

三、擴(kuò)展練習(xí)

3.1 使用注解標(biāo)記配置,首先定義一個(gè)接口

public interface Connector {

    String configure();
}

3.2 分別定義倆個(gè)實(shí)現(xiàn)類來(lái)實(shí)現(xiàn)它

import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;


@Component
@Profile("pro-db")//標(biāo)記文件,環(huán)境切換
public class ProConnector implements Connector {

    @Override
    public String configure() {
        return "pro生產(chǎn)標(biāo)記文件...";
    }
}
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

@Component
@Profile("dev-db")//標(biāo)記文件,環(huán)境切換
public class DevConnector implements Connector {

    @Override
    public String configure() {
        return "dev開發(fā)標(biāo)記文件...";
    }
}

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

spring:
  profiles:
    #active: dev #選定配置
     active: pro-db #選定配置激活標(biāo)記文件

3.4 新增查詢方法

@Autowired
    private Connector connector; //注入

   /**
     * .
     * 使用哪一個(gè)被標(biāo)記文件
     *
     * @return
     */
    @GetMapping("/proFile")
    public String proFile() {
        log.debug("使用配置文件:[{}]", connector.configure());
        return connector.configure();
    }

打開瀏覽器輸入:http://localhost:9990/proFile     

3.5 使用一個(gè)或多個(gè)配置文件及激活標(biāo)記文件

 修改application.yml文件,進(jìn)行屬性疊加

spring:
  profiles:
    include: pro,dev-db #指定配置文件及激活標(biāo)記文件
    #active: pro-db #選定標(biāo)記文件

新增查詢方法

/**
     * .
     * 使用哪一個(gè)配置文件及標(biāo)記文件
     *
     * @return
     */
    @GetMapping("/include")
    public String include() {
        return String.format("使用配置文件:%s,使用標(biāo)記文件:%s", cusvar, connector.configure());
    }

打開瀏覽器輸入:http://localhost:9990/include     

3.6 切換日志文件

新建logback文件

logback-pro.yml (生產(chǎn)日志)

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <contextName>logback</contextName>

    <!--定義文件名及存儲(chǔ)路徑-->
    <property name="log.path" value="./pro.log"/>
    <!-- ConsoleAppender:控制臺(tái)設(shè)置 -->
    <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:滾動(dòng)記錄文件,先將日志記錄到指定文件-->
    <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>
            <!-- 每產(chǎn)生一個(gè)日志文件,該日志文件的保存期限為7天 -->
            <maxHistory>7</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>%date %level  [%thread] %logger{36} [%file : %line] %msg%n
            </pattern>
        </encoder>
    </appender>

    <!--將上述name名稱:console:標(biāo)簽名稱為debug-->
    <root level="debug">
        <appender-ref ref="console"/>
    </root>
    <!--將上述name名稱:file:標(biāo)簽名稱為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的日志級(jí)別為info-->
    <logger name="com.example" level="debug"/><!--com.hy包下的日志級(jí)別為debug-->
</configuration>

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

spring:
  profiles:
    #include: pro,dev-db #指定配置文件及激活標(biāo)記文件
    #active: pro-db #選定標(biāo)記文件
    active: pro #指定配置文件

#日志
logging:
   config: classpath:logback-${spring.profiles.active}.xml #本地IDEA啟動(dòng)配置
   #config: config/logback-${spring.profiles.active}.xml # java -jar 包啟動(dòng)配置

項(xiàng)目啟動(dòng)訪問(wèn)接口,控制臺(tái)打印日志

友情提示:jar運(yùn)行指定配置

java -jar xxx.jar --spring.profiles.active=dev  #指定dev配置

java -jar xxx.jar --server.port=9090 #指定啟動(dòng)端口

以上就是SpringBoot實(shí)現(xiàn)多環(huán)境配置文件切換教程詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot配置文件切換的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

太谷县| 合江县| 福鼎市| 舞钢市| 新平| 丹棱县| 庆阳市| 中卫市| 得荣县| 常宁市| 山西省| 慈利县| 泽州县| 兴国县| 伽师县| 讷河市| 怀来县| 汤阴县| 泗阳县| 新和县| 花莲市| 阳高县| 伊通| 眉山市| 中山市| 泸西县| 湄潭县| 天柱县| 楚雄市| 孝昌县| 明水县| 长兴县| 双峰县| 鄂托克旗| 福泉市| 新乡县| 万安县| 读书| 绥江县| 铁力市| 梓潼县|