歡迎光臨
每天分享高質量文章

SpringBoot | 第五章 : 多環境配置

(點擊上方公眾號,可快速關註)


來源:oKong ,

blog.lqdev.cn/2018/07/15/springboot/chapter-five/

前言

寫上一篇看英文資料,耗費了心力呀,這章,相對來說簡單點。也比較熟悉,但是這很實用。不扯了,開始~

多環境配置

在開發應用時,常用部署的應用是多個的,比如:開發、測試、聯調、生產等不同的應用環境,這些應用環境都對應不同的配置項,比如swagger一般上在生產時是關閉的;不同環境資料庫地址、端口號等都是不盡相同的,要是沒有多環境的自由切換,部署起來是很繁瑣也容易出錯的。

maven的多環境配置

在沒有使用過springboot的多環境配置時,原先是利用maven的profile功能進行多環境配置,這裡我簡單回顧下。

maven配置

   

       dev

       

             true

         

         

            8080

         

   

   

       test

         

            8888

         

   

       

 

 

 

     

         src/main/resources

         

             **/*

         

     

     

         ${project.basedir}/src/main/resources

         

             **/*.properties

         

         

         true

     

 

 

     

         maven-resources-plugin

         

             utf-8

             

             true

         

     

     

         org.springframework.boot

         spring-boot-maven-plugin

     

 

 

然後編譯時,加入-Ptest,則會替換test環境下的引數值。 完整引數:

mvn clean install -DskipTests -Ptest

application.properties

server.port=${pom.port}

利用maven實現多環境配置,比較麻煩的就是每次部署新環境時,都需要再次指定環境編譯打包一次。一下進入主題,springboot的多環境,比較優雅了許多。

springboot多環境配置

Profile是Spring針對不同環境不同配置的支持。需要滿足application-{profile}.properties,{profile}對應你的環境標識。如:

  • application-dev.properties:開發環境

  • application-test.properties:測試環境

而指定執行哪份配置檔案,只需要在application.properties配置spring.profiles.active為對應${profile}的值。

# 指定環境為dev

spring.profiles.active=dev

則會加載:application-dev.properties的配置內容。

2018-07-15 14:52:41.304  INFO 15496 — [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

2018-07-15 14:52:41.310  INFO 15496 — [           main] c.l.l.s.chapter5.Chapter5Application     : Started Chapter5Application in 8.506 seconds (JVM running for 10.81)

2018-07-15 14:52:41.316  INFO 15496 — [           main] c.l.l.s.chapter5.Chapter5Application     : 多環境應用啟動.

還可以在**命令列方式**激活不同環境配置,如

java -jar xxx.jar –spring.profiles.active=test

此時就會加載application-test.properties的配置內容。 test:

這裡順便提一句,可能在不同環境下,可能加載不同的bean時,可利用@Profile註解來動態激活

@Profile(“dev”)//支持陣列:@Profile({“dev”,”test”})

@Configuration

@Slf4j

public class ProfileBean {

 

    @PostConstruct

    public void init() {

        log.info(“dev環境下激活”);

    }    

}

啟動時。控制台輸出:

2018-07-15 15:04:44.540  INFO 11876 — [           main] c.l.l.springboot.chapter5.ProfileBean    : dev環境下激活

總結

目前互聯網上很多大佬都有SpringBoot系列教程,如有雷同,請多多包涵了。本文是作者在電腦前一字一句敲的,每一步都是親身實踐過的。若文中有所錯誤之處,還望提出,謝謝。

系列



【關於投稿】


如果大家有原創好文投稿,請直接給公號發送留言。


① 留言格式:
【投稿】+《 文章標題》+ 文章鏈接

② 示例:
【投稿】《不要自稱是程式員,我十多年的 IT 職場總結》:http://blog.jobbole.com/94148/

③ 最後請附上您的個人簡介哈~



看完本文有收穫?請轉發分享給更多人

關註「ImportNew」,提升Java技能

赞(0)

分享創造快樂