一、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 全家桶,无第三方依赖。市面上鲜有的微服务核心组件。
| 依赖 | 版本 |
|---|---|
| Spring Boot | 2.3.x |
三、更新说明(累积更新)
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生态
- mica-auto (Spring boot starter 利器): gitee.com/596392912/m…
- mica-weixin(jfinal weixin 的 spring boot starter):gitee.com/596392912/m…
- mica-mqtt(基于 t-io 实现的 mqtt组件):gitee.com/596392912/m…
- Spring cloud 微服务 http2 方案(h2c): gitee.com/596392912/s…
六、文档
- mica 源码 Gitee(码云):gitee.com/596392912/m…
- mica 源码 Github:github.com/lets-mica
- 文档地址(官网):wiki.dreamlu.net
- 文档地址(语雀-可关注订阅):www.yuque.com/dreamlu
- 示例项目:github.com/lets-mica/m…