一、mica(云母)
mica 由如梦技术内部的 lutool(撸秃) 演变而来。lutool 诞生于 2017 年,受 jhipster 启发逐步形成一个微服务的核心集。
因 lutool 名称与功能不太符合,故在2019年开源时将其改名为 mica(云母),寓意为云服务的基石。
![]()
二、mica 2.x核心依赖
mica 基于 java 8,没有历史包袱,支持传统 Servlet 和 Reactive(webflux)。采用 mica-auto 自动生成 spring.factories 和 spring-devtools.properties 配置,仅依赖 Spring boot、Spring cloud 全家桶,无第三方依赖。市面上鲜有的微服务核心组件。
三、更新说明(累积更新)
v2.1.0-GA - 2020-12-13
-
✨ mica-bom 添加 mica-weixin。
-
✨ mica-redis 添加 redis key 失效事件配置。
-
✨ mica-swagger 添加 SwaggerCustomizer,用于自定义配置。
-
✨ mica-swagger 添加 oauth2 认证配置。
-
✨ mica-http 添加流上传,完善文档。
-
✨ mica-core 添加 GeoUtil。
-
✨ mica-core StringUtil 优化 format 方法参数泛型。
-
✨ mica-core JsonUtil 添加参数化类型 getParametricType 方法。
-
⬆️ 升级 knife4j 到 3.0.2。
-
⬆️ 升级 druid 到 1.2.3。
-
⬆️ 升级 spring boot 到 2.3.7.RELEASE。
v2.0.9-GA - 2020-11-15
-
✨ mica-xss 可自定义 XssCleaner 接口。
-
✨ mica-xss 日志统一调整为 debug。
-
✨ mica-xss 默认拦截 /** #I24753 。
-
✨ mica-ip2region 更新 db 文件。
-
✨ mica-redis 优化 redis scan。
-
✨ mica-redis 添加强制依赖 commons-pool2。
-
✨ mica-bom 添加 druid 到 bom。
-
✨ mica-core 完善 ReflectUtil。
-
⬆️ 升级 spring cloud 到 Hoxton.SR9。
-
⬆️ 升级 spring boot 到 2.3.6.RELEASE
四、使用
4.1 示例 redis key 超时事件(监听)
mica:
redis:
key-expired-event:
enable: true
@Async
@EventListener(RedisKeyExpiredEvent.class)
public void redisKeyExpiredEvent(RedisKeyExpiredEvent<Object> event) {
String redisKey = new String(event.getId());
System.out.println(redisKey);
}
4.2 示例 Swagger Oauth2 配置
mica:
swagger:
oauth2:
enabled: true
client-id-name: client_id
client-secret-name: client_secret
authorize-url:
token-url:
4.3 mica-http 示例上传流
public static void main(String[] args) {
// 设置全局日志级别
HttpRequest.setGlobalLog(HttpLogger.Console, LogLevel.HEADERS);
// 1. 下载文件流,注意: mica-http CompletableFuture 异步不会自动关流,其他都会自动关闭
InputStream inputStream = HttpRequest.get("http://www.baidu.com/img/PCdong_eab05f3d3a8e54ca5a0817f09b39d463.gif")
.executeAsyncAndJoin()
.asStream();
// 2. 上传文件流
String html = HttpRequest.post("http://1.w2wz.com/upload.php")
.multipartFormBuilder()
// 上传流,上传完毕后会自动关闭流
.add("uploadimg", "test.gif", inputStream)
.execute()
.asString();
System.out.println(html);
}
五、mica生态
六、文档