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 更新說明
- :sparkles: 開源 mica-ip2region 元件。
- :zap: mica-core 優化 R.isNotSuccess 改為 isFail。
- :bug: mica-redis jackson class info。
- :bug: mica-redis jackson findAndRegisterModules。
- :wrench: travis 替換為 Github actions,用于建構和 Snapshot 版本自動釋出。
- :arrow_up: update spring boot to 2.2.7.RELEASE。
版本号說明
release
版本号格式為
x.x.x.發版當然日期
,避免和内部的版本号沖突。
snapshots
x.x.x-SNAPSHOT
,
snapshots
版每次送出後會自動建構。
引用
mica-bom,可以簡化依賴和依賴版本統一處理,避免jar沖突。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-bom</artifactId>
<version>2.0.1.20200510</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
注意
:maven 是按先後順序進行依賴的,是以 mica-bom 順序按
mica
、
spring boot
spring cloud
依次添加。
mica-ip2region 最好用的 ip2region spring stater
ip2region spring stater
maven
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-ip2region</artifactId>
<version>${version}</version>
</dependency>
gradle
compile("net.dreamlu:mica-ip2region:${version}")
配置說明(已經内置,忽略)
配置項 | 預設值 | 說明 |
---|---|---|
mica.ip2region.db-file-location | classpath:ip2region/ip2region.db | ip2region.db 檔案的位址,預設内置的檔案 |
maven 自定義 ip2region.db 注意事項:
resources
拷貝檔案是預設會做
filter
,會導緻我們的檔案發生變化,導緻不能讀,
pom
中你需要添加下面的配置。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>db</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
關于 ip2region
ip2region Gitee 源碼位址:
https://gitee.com/lionsoul/ip2region我們都會同步更新
ip2region.db
檔案,一般不需要手動配置。
使用文檔
注入 bean
@Autowired
private Ip2regionSearcher regionSearcher;
方法說明
/**
* ip 位置 搜尋
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo memorySearch(long ip);
/**
* ip 位置 搜尋
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo memorySearch(String ip);
/**
* ip 位置 搜尋
*
* @param ptr ptr
* @return 位置
*/
@Nullable
IpInfo getByIndexPtr(long ptr);
/**
* ip 位置 搜尋
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo btreeSearch(long ip);
/**
* ip 位置 搜尋
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo btreeSearch(String ip);
/**
* ip 位置 搜尋
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo binarySearch(long ip);
/**
* ip 位置 搜尋
*
* @param ip ip
* @return 位置
*/
@Nullable
IpInfo binarySearch(String ip);
文檔
- 文檔位址(語雀-可關注訂閱): https://www.yuque.com/dreamlu
- 示例項目: https://github.com/lets-mica/mica-example
歡迎關注我們的公衆号:JAVA架構日記,精彩内容每日推送。