A.6 springboot profile

1 背景

在實際的項目開發(fā)中,我們同一套程序需要運行在不同的環(huán)境中潜圃,例如:測試環(huán)境缸棵、開發(fā)環(huán)境、生產(chǎn)環(huán)境每個環(huán)境需要連接特定的數(shù)據(jù)庫谭期、MQ堵第、redis等。

2 引入

springboot引入了profile隧出,可以實現(xiàn)不同環(huán)境下配置參數(shù)的切換

2.1 應用場景

  1. 區(qū)分測試踏志、開發(fā)、生產(chǎn)環(huán)境
  2. 區(qū)分同一套程序不同的特殊需求胀瞪,例如同一套CRM系統(tǒng)需要在不同省份對接不同的ERP接口
  3. 不同的環(huán)境打印不同的日志
  4. 使用maven在不同的環(huán)境打不同的包

3 通過profile使用不同的配置文件

3.1 創(chuàng)建多個配置文件

在src/main/java下創(chuàng)建多個配置文件针余,命名application-{profile}.properties,如下:

application-test.properties
application-dev.properties
application-prod.properties

為了測試加載不同的配置凄诞,我們在每個配置文件中配置不同的端口

3.2 測試加載不同的環(huán)境

方法一:在application.properties中設置加載的profile

#加載開發(fā)環(huán)境下的配置文件
spring.profiles.active=dev

方法二:啟動時加載

java -jar xxx.jar -spring.profiles.active=dev

使用上述方法中的任意一種圆雁,即可實現(xiàn)加載不同的配置文件

4 通過profile使用不同的接口實現(xiàn)類

4.1 創(chuàng)建接口

public interface MessageService {
  String getMessage();
}

4.2 創(chuàng)建實現(xiàn)類

@Component
@Profile({"dev"})
public class DevService implements MessageService{

  public String getMessage() {
    return "dev profile message";
  }

}

@Component
@Profile({"prod"})
public class ProdService implements MessageService{

  public String getMessage() {
    return "prod profile message";
  }

}

4.3 創(chuàng)建測試類

@SpringBootApplication
public class FirstRunning implements CommandLineRunner {
  
  private static final Logger logger = LoggerFactory.getLogger(FirstRunning.class);

  @Autowired
  private MessageService messageService;

  @Override
  public void run(String... args) {
    logger.info(this.messageService.getMessage());
  }
}

4.4 測試接口

使用3.2章節(jié)中的方法可以測試加載不同profile,啟動后查看打印的日志即可驗證

5 通過profile打印不同的日志(logback)

5.1 logback-spring.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!--開發(fā)環(huán)境的日志配置-->
    <springProfile name="dev">
        <logger name="pers.mateng" level="DEBUG" />
        <appender name="logfile" class="ch.qos.logback.core.ConsoleAppender">
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} : %msg%n</pattern>
            </encoder>
        </appender>
    </springProfile>

    <!--生產(chǎn)環(huán)境的日志配置-->
    <springProfile name="prod">
        <logger name="pers.mateng" level="ERROR" />
        <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <File>log/server.log</File>
            <rollingPolicy
                    class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <FileNamePattern>log/server_%d{yyyy-MM-dd}.log.zip</FileNamePattern>
            </rollingPolicy>
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} : %msg%n</pattern>
            </encoder>
        </appender>
    </springProfile>

    <root level="info">
        <appender-ref ref="logfile" />
    </root>

</configuration>

5.2 測試日志

使用3.2章節(jié)中的方法可以測試加載不同profile帆谍,啟動后查看打印的日志即可驗證

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伪朽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子既忆,更是在濱河造成了極大的恐慌驱负,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件患雇,死亡現(xiàn)場離奇詭異跃脊,居然都是意外死亡,警方通過查閱死者的電腦和手機苛吱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門酪术,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事绘雁∠鹛郏” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵庐舟,是天一觀的道長欣除。 經(jīng)常有香客問我,道長挪略,這世上最難降的妖魔是什么历帚? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮杠娱,結果婚禮上挽牢,老公的妹妹穿的比我還像新娘。我一直安慰自己摊求,他們只是感情好禽拔,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著室叉,像睡著了一般睹栖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上太惠,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天磨淌,我揣著相機與錄音,去河邊找鬼凿渊。 笑死梁只,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的埃脏。 我是一名探鬼主播搪锣,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼彩掐!你這毒婦竟也來了构舟?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤堵幽,失蹤者是張志新(化名)和其女友劉穎狗超,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朴下,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡努咐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了殴胧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渗稍。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡佩迟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出竿屹,到底是詐尸還是另有隱情报强,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布拱燃,位于F島的核電站秉溉,受9級特大地震影響,放射性物質發(fā)生泄漏扼雏。R本人自食惡果不足惜坚嗜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诗充。 院中可真熱鬧,春花似錦诱建、人聲如沸蝴蜓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茎匠。三九已至,卻和暖如春押袍,著一層夾襖步出監(jiān)牢的瞬間诵冒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工谊惭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留汽馋,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓圈盔,卻偏偏與公主長得像豹芯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子驱敲,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容