一、mica(云母)

mica 由如梦技术内部的 lutool(撸秃) 演变而来。lutool 诞生于 2017 年,受 jhipster 启发逐步形成一个微服务的核心集。

lutool 名称与功能不太符合,故在2019年开源时将其改名为 mica(云母),寓意为云服务的基石。
mica 2.4.4-GA发布重构 logging 和添加 qrcode 模块 - 图1

二、版本说明

注意: mica-v2.0 分支仅做 bug 修复,不再做功能更新。

最新版本 mica 版本 spring boot 版本 spring cloud 版本
2.4.4-GA mica 2.4.x 2.4.x 2020
2.1.1-GA mica 2.0.x~2.1.x 2.2.x ~ 2.3.x Hoxton

三、更新记录

v2.4.4-GA - 2021-03-28

  • ✨ mica-qrcode 新增模块,友好的二维码识别和生成
  • ✨ mica-logging 重新设计,logstash-logback-encoder 调整为可选,logstash 和 json 需手动添加依赖
  • ✨ mica-core 优化完善 DesensitizationUtil
  • ✨ mica-core 添加 ImageUtil
  • ✨ mica-ip2region 更新 db 文件 gitee #I3AJNV
  • 🐛 mica-redis 修复 ScanOptions count 空指针
  • ⬆️ 升级到 mica-auto 到 2.0.4
  • ⬆️ 升级到 mica-weixin 到 2.0.6
  • ⬆️ 升级到 spring cloud 2020.0.2
  • ⬆️ 升级 spring boot 到 2.4.4

三、mica-logging

3.1 规则

  1. 默认情况下,打印 console 日志、all.logerror.log
  2. 设置为 json 格式化,打印 console 日志(非 json)、all.logjson 格式,可用于 filebeat 收集)。
  3. 开启 logstash,打印 console 日志,并将日志输出到 logstash(建议关闭掉 file 输出)。
  4. 可配置启动完成后关闭 console 日志。

注意: 开启 json 文件或 logstash 必须添加 logstash-logback-encoder 依赖!!!

3.2 日志示例:

文件日志

  1. 2021-03-25 21:03:55.275 INFO 2354 --- [XNIO-1 task-3] n.d.mica.mybatis.logger.SqlLogFilter :
  2. ======= Sql Logger ======================
  3. select id, parent_id, title, name, seq , path, permission, component, icon, is_frame , type, cache, hidden, status, remark , created_by, created_at, updated_by, updated_at from sys_menu where type in (0, 1) and hidden = false and status = 0
  4. ======= Sql Execute Time: 3.438ms =======

json 日志

  1. {"loggingLevelRoot":"info","appName":"mica-fast","profile":"dev","level":"INFO","logger_name":"o.s.b.w.e.u.UndertowWebServer","message":"Undertow started on port(s) 8080 (http)","thread_name":"main","@timestamp":"2021-03-25T13:10:34.371Z"}

logstash 日志(stdout)

  1. {
  2. "port" => 57146,
  3. "@version" => "1",
  4. "profile" => "dev",
  5. "logger_name" => "net.dreamlu.mica.mybatis.logger.SqlLogFilter",
  6. "appName" => "mica-fast",
  7. "thread_name" => "XNIO-1 task-3",
  8. "level" => "INFO",
  9. "level_value" => 20000,
  10. "message" => "\n\n======= Sql Logger ======================\nselect id, parent_id, title, name, seq , path, permission, component, icon, is_frame , type, cache, hidden, status, remark , created_by, created_at, updated_by, updated_at from sys_menu where type in (0, 1) and hidden = false and status = 0\n======= Sql Execute Time: 3.438ms =======\n",
  11. "loggingLevelRoot" => "info",
  12. "host" => "localhost",
  13. "requestId" => "d17d635f0a479f01f846199231008ec9",
  14. "@timestamp" => 2021-03-25T13:03:55.275Z
  15. }

四、mica-qrcode

声明:本模块参考 nutzmore(nutz-plugins-qrcode)进行了大量修改,使用更加简单,添加多个流和 byte 数组接口,对微服务更加友好。

使用示例:

  1. // 生成 二维码
  2. QrCode.form("牛年大吉")
  3. .size(512) // 默认 512,可以不设置
  4. .backGroundColor(Color.WHITE) // 默认白色,可以不设置
  5. .foreGroundColor(Color.BLACK) // 默认黑色,可以不设置
  6. .encode(Charsets.UTF_8) // 默认 UTF_8,可以不设置
  7. .imageFormat("png") // 默认 png,可以不设置
  8. .deleteMargin(true) // 删除白边,默认为 true,可以不设置
  9. .logo("/Users/lcm/Desktop/mica-mqtt-01.png") // 设置二维码 logo,支持 URL 远程图片、文件和流
  10. .toFile("/Users/lcm/Desktop/xxx1.png"); // 写出,同类方法有 toImage、toStream、toBytes
  11. // 二维码读取
  12. String text = QrCode.read("/Users/lcm/Desktop/xxx1.png");
  13. System.out.println(text);

五、mica生态

六、文档

七、关注我们

如梦技术-公众号.jpg

扫描上面二维码,更多精彩内容每天推荐!