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

相关文章
相关标签/搜索