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.1 更新说明

  • mica 2.0.1 发布新增最好用的 ip2region boot stater - 图1 开源 mica-ip2region 组件。
  • mica 2.0.1 发布新增最好用的 ip2region boot stater - 图2 mica-core 优化 R.isNotSuccess 改为 isFail。
  • mica 2.0.1 发布新增最好用的 ip2region boot stater - 图3 mica-redis jackson class info。
  • mica 2.0.1 发布新增最好用的 ip2region boot stater - 图4 mica-redis jackson findAndRegisterModules。
  • mica 2.0.1 发布新增最好用的 ip2region boot stater - 图5 travis 替换为 Github actions,用于构建和 Snapshot 版本自动发布。
  • mica 2.0.1 发布新增最好用的 ip2region boot stater - 图6 update spring boot to 2.2.7.RELEASE。

版本号说明

release 版本号格式为 x.x.x.发版当然日期,避免和内部的版本号冲突。

snapshots 版本号格式为 x.x.x-SNAPSHOTsnapshots 版每次提交后会自动构建。

引用

mica-bom,可以简化依赖和依赖版本统一处理,避免jar冲突。

  1. <dependencyManagement>
  2. <dependencies>
  3. <dependency>
  4. <groupId>net.dreamlu</groupId>
  5. <artifactId>mica-bom</artifactId>
  6. <version>2.0.1.20200510</version>
  7. <type>pom</type>
  8. <scope>import</scope>
  9. </dependency>
  10. </dependencies>
  11. </dependencyManagement>

注意:maven 是按先后顺序进行依赖的,所以 mica-bom 顺序按 micaspring bootspring cloud依次添加。

mica-ip2region 最好用的 ip2region spring stater

maven

  1. <dependency>
  2. <groupId>net.dreamlu</groupId>
  3. <artifactId>mica-ip2region</artifactId>
  4. <version>${version}</version>
  5. </dependency>

gradle

  1. compile("net.dreamlu:mica-ip2region:${version}")

配置说明(已经内置,忽略)

配置项 默认值 说明
mica.ip2region.db-file-location classpath:ip2region/ip2region.db ip2region.db 文件的地址,默认内置的文件

maven 自定义 ip2region.db 注意事项:

maven resources 拷贝文件是默认会做 filter,会导致我们的文件发生变化,导致不能读,pom 中你需要添加下面的配置。

  1. <plugin>
  2. <artifactId>maven-resources-plugin</artifactId>
  3. <configuration>
  4. <nonFilteredFileExtensions>
  5. <nonFilteredFileExtension>db</nonFilteredFileExtension>
  6. </nonFilteredFileExtensions>
  7. </configuration>
  8. </plugin>

关于 ip2region

ip2region Gitee 源码地址:https://gitee.com/lionsoul/ip2region

我们都会同步更新 ip2region.db 文件,一般不需要手动配置。

使用文档

注入 bean

  1. @Autowired
  2. private Ip2regionSearcher regionSearcher;

方法说明

  1. /**
  2. * ip 位置 搜索
  3. *
  4. * @param ip ip
  5. * @return 位置
  6. */
  7. @Nullable
  8. IpInfo memorySearch(long ip);
  9. /**
  10. * ip 位置 搜索
  11. *
  12. * @param ip ip
  13. * @return 位置
  14. */
  15. @Nullable
  16. IpInfo memorySearch(String ip);
  17. /**
  18. * ip 位置 搜索
  19. *
  20. * @param ptr ptr
  21. * @return 位置
  22. */
  23. @Nullable
  24. IpInfo getByIndexPtr(long ptr);
  25. /**
  26. * ip 位置 搜索
  27. *
  28. * @param ip ip
  29. * @return 位置
  30. */
  31. @Nullable
  32. IpInfo btreeSearch(long ip);
  33. /**
  34. * ip 位置 搜索
  35. *
  36. * @param ip ip
  37. * @return 位置
  38. */
  39. @Nullable
  40. IpInfo btreeSearch(String ip);
  41. /**
  42. * ip 位置 搜索
  43. *
  44. * @param ip ip
  45. * @return 位置
  46. */
  47. @Nullable
  48. IpInfo binarySearch(long ip);
  49. /**
  50. * ip 位置 搜索
  51. *
  52. * @param ip ip
  53. * @return 位置
  54. */
  55. @Nullable
  56. IpInfo binarySearch(String ip);

文档

关注我们

dreamlu-weixin.jpg

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