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客户端
示例代码:
// 同步请求 url,方法支持 get、post、patch、put、delete
HttpRequest.get("https://www.baidu.com")
.useConsoleLog(LogLevel.HEADERS) //使用控制台日志,同类的有 .useSlf4jLog(),日志级别为 BODY
.addHeader("x-account-id", "mica001") // 添加 header
.addCookie(new Cookie.Builder() // 添加 cookie
.name("sid")
.value("mica_user_001")
.build()
)
.query("q", "mica") //设置 url 参数,默认进行 url encode
.queryEncoded("name", "encodedValue")
.formBuilder() // 表单构造器,同类 multipartFormBuilder 文件上传表单
.add("id", 123123) // 表单参数
.retryOn(responseSpec -> !responseSpec.isOk()) // 结合 spring retry 进行结果集断言
.proxy(InetSocketAddress.createUnresolved("127.0.0.1", 8080)) // 设置代理
.execute() // 发起请求
.asJsonNode(); // 结果集转换,注:如果网络异常等会直接抛出异常。
// 同类的方法有 asString、asBytes
// json 类响应:asJsonNode、asValue、asList、asMap、atJsonPath、,采用 jackson 处理
// file 文件:toFile
示例日志打印:
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
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
ConsoleLogger: --> END GET
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)
ConsoleLogger: Bdpagetype: 1
ConsoleLogger: Bdqid: 0xf7759b3500101638
ConsoleLogger: Cache-Control: private
ConsoleLogger: Connection: keep-alive
ConsoleLogger: Content-Type: text/html;charset=utf-8
ConsoleLogger: Date: Mon, 29 Jun 2020 00:49:30 GMT
ConsoleLogger: Expires: Mon, 29 Jun 2020 00:49:30 GMT
ConsoleLogger: P3p: CP=" OTI DSP COR IVA OUR IND COM "
ConsoleLogger: P3p: CP=" OTI DSP COR IVA OUR IND COM "
ConsoleLogger: Server: BWS/1.1
ConsoleLogger: Set-Cookie: BAIDUID=65575AF63CB9DA82E678269FFA4DF15D:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
ConsoleLogger: Set-Cookie: BIDUPSID=65575AF63CB9DA82E678269FFA4DF15D; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
ConsoleLogger: Set-Cookie: PSTM=1593391770; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
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
ConsoleLogger: Set-Cookie: BDSVRTM=15; path=/
ConsoleLogger: Set-Cookie: BD_HOME=1; path=/
ConsoleLogger: Set-Cookie: H_PS_PSSID=1431_31669_21083_32139_32046_31322_32108_22160; path=/; domain=.baidu.com
ConsoleLogger: Strict-Transport-Security: max-age=172800
ConsoleLogger: Traceid: 1593391770045661850617831328951579973176
ConsoleLogger: X-Ua-Compatible: IE=Edge,chrome=1
ConsoleLogger: Transfer-Encoding: chunked
ConsoleLogger: <-- END HTTP
文档
- mica 源码 Github:https://github.com/lets-mica
- mica 源码 Gitee(码云):https://gitee.com/596392912/mica
- 文档地址(官网):https://www.dreamlu.net/mica2x/index.html
- 文档地址(语雀-可关注订阅):https://www.yuque.com/dreamlu
- 示例项目:https://github.com/lets-mica/mica-example
关注我们
扫描上面二维码,更多精彩内容每天推荐!