服务名在微服务中起着相当重要的位置,一个好的服务名应该见名知意。下面是笔者在工做中总结的规范。java
例如:user-api
spring
第一级 服务名api
第二级 服务类型app
将组名放到第一位,方便快速定位到技术组。ide
例如:mica-user-api
微服务
第一级 组名单元测试
第二级 服务名学习
第三级 服务类型测试
启动器的使命就是让咱们的 jar 在各类环境中均可以方便启动,不用添加过多的配置,减小学习成本,能快速上手。ui
dev(开发)、test(测试)、ontest(线上测试)、prod(正式),默认dev
java -jar app.jar --spring.profiles.active=dev
set JAVA_OPTS="-Dspring.profiles.active=test"
@ActiveProfiles({"junittest","productprofile"})
系统环境变量 SPRING_PROFILES_ACTIVE(注意:是大写)
使用起来比原生的 spring boot
启动器里多了一个服务名参数,微服务中服务名对一个服务特别重要,故在启动器启动时写死。
net.dreamlu mica-launcher
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 的代码。
{ ( , , , , ); }
文件路径和文件名 META-INF/services/net.dreamlu.mica.launcher.LauncherService
。
内容为你编写的插件完整类名,例如:net.dreamlu.mica.log.LogLauncherServiceImpl
。