mica-launcher 啓動器

服務名規範

服務名在微服務中起着相當重要的位置,一個好的服務名應該見名知意。下面是筆者在工做中總結的規範。java


小開發團隊-兩級

例如:user-apispring

  1. 第一級 服務名api

  2. 第二級 服務類型app

多個開發團隊-三級

將組名放到第一位,方便快速定位到技術組。ide

例如:mica-user-api微服務

  1. 第一級 組名單元測試

  2. 第二級 服務名學習

  3. 第三級 服務類型測試


環境劃分

願景

啓動器的使命就是讓咱們的 jar 在各類環境中均可以方便啓動,不用添加過多的配置,減小學習成本,能快速上手。ui

環境劃分

dev(開發)、test(測試)、ontest(線上測試)、prod(正式),默認dev

啓動環境變量

java命令行:

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

JAVA_OPS

set JAVA_OPTS="-Dspring.profiles.active=test"

標註方式(代碼層面,junit單元測試很是實用)

@ActiveProfiles({"junittest","productprofile"})

ENV方式

系統環境變量 SPRING_PROFILES_ACTIVE(注意:是大寫)


使用

使用起來比原生的 spring boot 啓動器裏多了一個服務名參數,微服務中服務名對一個服務特別重要,故在啓動器啓動時寫死。

Maven

    net.dreamlu
    mica-launcher

Gradle

implementation "net.dreamlu:mica-launcher"


   {

     ([] ) {
    .(, ., );
  }
}


注意:使用了 mica-launcher 啓動器,須要結合 mica-test 進行單元測試,具體文章請查看 mica test 單元測試

啓動器自動化配置

代碼中能夠採用注入 MicaProperties 來讀取啓動器中的一些變量,好比 env 等。

mica.prop 能夠在配置文件中自定義配置。而後再在代碼中使用 MicaProperties 讀取。

配置項 默認值 說明
mica.env dev 【只讀】mica 環境變量,方便在代碼中獲取,設置無效.
mica.is-local false 【只讀】判斷是否爲 本地開發環境
mica.prop 裝載自定義配置 mica.prop.xxx

自定義配置

如夢技術
https//www.dreamlu.net

配置讀取

  ;
  () {
       .();
       .();
    
}


啓動器插件擴展

啓動器的主要目的是能更加方便的去注入一些通用配置,下降使用難度。mica-log4j2 就是一個啓動器的擴展。

插件擴展基於 java SPI 技術,關於 java SPI 具體使用能夠百度。


實現 LauncherService,重寫 launcher 方法

下面是 LauncherService 的代碼。


 
 
 
 
   {
   
    
    
    
    
    
    
    
    ( ,  ,  ,  ,  );
}

編寫 SPI 文件放置到 resources 目錄下

文件路徑和文件名 META-INF/services/net.dreamlu.mica.launcher.LauncherService 

內容爲你編寫的插件完整類名,例如:net.dreamlu.mica.log.LogLauncherServiceImpl

相關文章
相關標籤/搜索