mica 由如夢技術內部的 lutool(擼禿)演變而來。lutool 誕生於 2017 年,受 jhipster 啓發逐步造成一個微服務的核心集。java
因 lutool 名稱與功能不太符合,故在2019年開源時將其更名爲 mica(雲母),寓意爲雲服務的基石。git
mica 基於 java 8,沒有歷史包袱,支持傳統 Servlet 和 Reactive(webflux)。採用 mica-auto 自動生成 spring.factories 和 spring-devtools.properties 配置,僅依賴 Spring boot、Spring cloud 全家桶,無第三方依賴。市面上鮮有的微服務核心組件。github
依賴 | 版本 |
---|---|
Spring Boot | 2.2.x |
release
版本號格式爲 x.x.x.發版固然日期
,避免和內部的版本號衝突。web
snapshots
版本號格式爲 x.x.x-SNAPSHOT
,snapshots
版每次提交後會自動構建。redis
mica-bom,能夠簡化依賴和依賴版本統一處理,避免jar衝突。spring
<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
依次添加。架構
ip2region spring stater
<dependency> <groupId>net.dreamlu</groupId> <artifactId>mica-ip2region</artifactId> <version>${version}</version> </dependency>
compile("net.dreamlu:mica-ip2region:${version}")
配置項 | 默認值 | 說明 |
---|---|---|
mica.ip2region.db-file-location | classpath:ip2region/ip2region.db | ip2region.db 文件的地址,默認內置的文件 |
maven 自定義 ip2region.db 注意事項:maven
maven resources
拷貝文件是默認會作 filter
,會致使咱們的文件發生變化,致使不能讀,pom
中你須要添加下面的配置。微服務
<plugin> <artifactId>maven-resources-plugin</artifactId> <configuration> <nonFilteredFileExtensions> <nonFilteredFileExtension>db</nonFilteredFileExtension> </nonFilteredFileExtensions> </configuration> </plugin>
ip2region Gitee 源碼地址:https://gitee.com/lionsoul/ip...gradle
咱們都會同步更新 ip2region.db
文件,通常不須要手動配置。
@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);
歡迎關注咱們的公衆號:JAVA架構日記,精彩內容每日推送。