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.2.x

mica 2.0.3-GA 更新说明

  • 📝 完善 mica 2.x 使用文档.
  • ✨ mica-http 微调日志,添加 system out log.
  • ✨ mica-http 添加 asString(Charset charset) 方法。
  • ✨ mica-http ResponseSpec 添加 json path 系列方法。
  • ✨ mica-http 优化 github #26 .
  • ✨ mica-ip2region 更新 ip2region.db 文件。
  • ✨ mica-core 优化 StringUtil,添加 startWith、endWith 方法.
  • ✨ mica-core 优化 DateUtil 优化 minus、plus months、years 提升5倍性能 gitee #IW2IM.
  • ✨ mica-redis 优化 MicaRedisCache 构造器 github #27.
  • ⬆️ 升级 spring boot 到 2.3.1.RELEASE。

mica-http简单好用高性能的http客户端

示例代码:

  1. // 同步请求 url,方法支持 get、post、patch、put、delete
  2. HttpRequest.get("https://www.baidu.com")
  3. .useConsoleLog(LogLevel.HEADERS) //使用控制台日志,同类的有 .useSlf4jLog(),日志级别为 BODY
  4. .addHeader("x-account-id", "mica001") // 添加 header
  5. .addCookie(new Cookie.Builder() // 添加 cookie
  6. .name("sid")
  7. .value("mica_user_001")
  8. .build()
  9. )
  10. .query("q", "mica") //设置 url 参数,默认进行 url encode
  11. .queryEncoded("name", "encodedValue")
  12. .formBuilder() // 表单构造器,同类 multipartFormBuilder 文件上传表单
  13. .add("id", 123123) // 表单参数
  14. .retryOn(responseSpec -> !responseSpec.isOk()) // 结合 spring retry 进行结果集断言
  15. .proxy(InetSocketAddress.createUnresolved("127.0.0.1", 8080)) // 设置代理
  16. .execute() // 发起请求
  17. .asJsonNode(); // 结果集转换,注:如果网络异常等会直接抛出异常。
  18. // 同类的方法有 asString、asBytes
  19. // json 类响应:asJsonNode、asValue、asList、asMap、atJsonPath、,采用 jackson 处理
  20. // file 文件:toFile

示例日志打印:

  1. ConsoleLogger: --> GET https://www.baidu.com/?test=a&name=%E5%BC%B5%E4%B8%89&x=1&abd=MTIzJiQjJQ%3D%3D&abc=MTIzJiQjJQ%3D%3D
  2. ConsoleLogger: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
  3. ConsoleLogger: --> END GET
  4. ConsoleLogger: <-- 200 OK https://www.baidu.com/?test=a&name=%E5%BC%B5%E4%B8%89&x=1&abd=MTIzJiQjJQ%3D%3D&abc=MTIzJiQjJQ%3D%3D (344ms)
  5. ConsoleLogger: Bdpagetype: 1
  6. ConsoleLogger: Bdqid: 0xf7759b3500101638
  7. ConsoleLogger: Cache-Control: private
  8. ConsoleLogger: Connection: keep-alive
  9. ConsoleLogger: Content-Type: text/html;charset=utf-8
  10. ConsoleLogger: Date: Mon, 29 Jun 2020 00:49:30 GMT
  11. ConsoleLogger: Expires: Mon, 29 Jun 2020 00:49:30 GMT
  12. ConsoleLogger: P3p: CP=" OTI DSP COR IVA OUR IND COM "
  13. ConsoleLogger: P3p: CP=" OTI DSP COR IVA OUR IND COM "
  14. ConsoleLogger: Server: BWS/1.1
  15. ConsoleLogger: Set-Cookie: BAIDUID=65575AF63CB9DA82E678269FFA4DF15D:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
  16. ConsoleLogger: Set-Cookie: BIDUPSID=65575AF63CB9DA82E678269FFA4DF15D; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
  17. ConsoleLogger: Set-Cookie: PSTM=1593391770; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
  18. ConsoleLogger: Set-Cookie: BAIDUID=65575AF63CB9DA82BF723572E9FA07E1:FG=1; max-age=31536000; expires=Tue, 29-Jun-21 00:49:30 GMT; domain=.baidu.com; path=/; version=1; comment=bd
  19. ConsoleLogger: Set-Cookie: BDSVRTM=15; path=/
  20. ConsoleLogger: Set-Cookie: BD_HOME=1; path=/
  21. ConsoleLogger: Set-Cookie: H_PS_PSSID=1431_31669_21083_32139_32046_31322_32108_22160; path=/; domain=.baidu.com
  22. ConsoleLogger: Strict-Transport-Security: max-age=172800
  23. ConsoleLogger: Traceid: 1593391770045661850617831328951579973176
  24. ConsoleLogger: X-Ua-Compatible: IE=Edge,chrome=1
  25. ConsoleLogger: Transfer-Encoding: chunked
  26. ConsoleLogger: <-- END HTTP

文档

关注我们

image.png

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