High performance snowflake ID generator springboot autoconfigure 高性能雪花ID生成器自动配置
点击查看第一篇
项目地址
高性能雪花ID生成器项目地址
简介
本项目使用了SpringBoot的自动配置,只需要在配置文件中写入初始化参数即可,不用写死在代码中。
依赖导入
maven
<!-- 必须依赖 -->
<dependency>
<groupId>cn.404z</groupId>
<artifactId>id-spring-boot-autoconfigure</artifactId>
<version>2.1.0</version>
</dependency>
<!-- 额外依赖(运行未报错,不需要加) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.4.3</version>
</dependency>
gradle
// 必须依赖
implementation 'cn.404z:id-spring-boot-autoconfigure:2.1.0'
// 额外依赖(运行未报错,不需要加)
implementation 'org.springframework.boot:spring-boot-starter:2.4.3'
使用方法
正常使用
配置文件
id:
machine-id: 0
machine-bits: 8
sequence-bits: 14
代码
System.out.println("ID为:" + Id.next());
结果
[main] INFO cn.z.id.autoconfigure.IdAutoConfiguration - 读取到配置文件,MACHINE_ID为0,MACHINE_BITS为8,SEQUENCE_BITS为14
[main] INFO cn.z.id.Id - 预初始化...
[main] INFO cn.z.id.Id - 初始化,MACHINE_ID为0,MACHINE_BITS为8,SEQUENCE_BITS为12
[main] INFO cn.z.id.Id - 最大机器码MACHINE_ID为255,1ms内最多生成Id数量为4096,时钟最早回拨到2021-01-01 08:00:00.0,可使用时间大约为278年,失效日期为2299-09-27 23:10:22.207
[main] INFO cn.z.id.Id - 手动初始化...
[main] INFO cn.z.id.Id - 初始化,MACHINE_ID为0,MACHINE_BITS为8,SEQUENCE_BITS为14
[main] INFO cn.z.id.Id - 最大机器码MACHINE_ID为255,1ms内最多生成Id数量为16384,时钟最早回拨到2021-01-01 08:00:00.0,可使用时间大约为69年,失效日期为2090-09-07 23:47:35.551
[main] INFO com.demo.App - Started App in 0.798 seconds (JVM running for 1.632)
ID为:22502074365247488
不配置属性
不需要配置文件
代码
System.out.println("ID为:" + Id.next());
结果
[main] INFO com.demo.App - Started App in 0.735 seconds (JVM running for 1.401)
[main] INFO cn.z.id.Id - 预初始化...
[main] INFO cn.z.id.Id - 初始化,MACHINE_ID为0,MACHINE_BITS为8,SEQUENCE_BITS为12
[main] INFO cn.z.id.Id - 最大机器码MACHINE_ID为255,1ms内最多生成Id数量为4096,时钟最早回拨到2021-01-01 08:00:00.0,可使用时间大约为278年,失效日期为2299-09-27 23:10:22.207
ID为:5625838540161024
配置部分属性
配置文件
id:
machine-id: 10
代码
System.out.println("ID为:" + Id.next());
结果
[main] INFO cn.z.id.autoconfigure.IdAutoConfiguration - 读取到配置文件,MACHINE_ID为10
[main] INFO cn.z.id.Id - 预初始化...
[main] INFO cn.z.id.Id - 初始化,MACHINE_ID为0,MACHINE_BITS为8,SEQUENCE_BITS为12
[main] INFO cn.z.id.Id - 最大机器码MACHINE_ID为255,1ms内最多生成Id数量为4096,时钟最早回拨到2021-01-01 08:00:00.0,可使用时间大约为278年,失效日期为2299-09-27 23:10:22.207
[main] INFO cn.z.id.Id - 手动初始化...
[main] INFO cn.z.id.Id - 初始化,MACHINE_ID为10,MACHINE_BITS为8,SEQUENCE_BITS为12
[main] INFO cn.z.id.Id - 最大机器码MACHINE_ID为255,1ms内最多生成Id数量为4096,时钟最早回拨到2021-01-01 08:00:00.0,可使用时间大约为278年,失效日期为2299-09-27 23:10:22.207
[main] INFO com.demo.App - Started App in 0.825 seconds (JVM running for 1.509)
ID为:5626263803830272
配置属性后又手动初始化
配置文件
id:
machine-id: 0
machine-bits: 8
sequence-bits: 6
代码
Id.init(20, 6, 10);
System.out.println("ID为:" + Id.next());
结果
[main] INFO cn.z.id.autoconfigure.IdAutoConfiguration - 读取到配置文件,MACHINE_ID为0,MACHINE_BITS为8,SEQUENCE_BITS为6
[main] INFO cn.z.id.Id - 预初始化...
[main] INFO cn.z.id.Id - 初始化,MACHINE_ID为0,MACHINE_BITS为8,SEQUENCE_BITS为12
[main] INFO cn.z.id.Id - 最大机器码MACHINE_ID为255,1ms内最多生成Id数量为4096,时钟最早回拨到2021-01-01 08:00:00.0,可使用时间大约为278年,失效日期为2299-09-27 23:10:22.207
[main] INFO cn.z.id.Id - 手动初始化...
[main] INFO cn.z.id.Id - 初始化,MACHINE_ID为0,MACHINE_BITS为8,SEQUENCE_BITS为6
[main] INFO cn.z.id.Id - 最大机器码MACHINE_ID为255,1ms内最多生成Id数量为64,时钟最早回拨到2021-01-01 08:00:00.0,可使用时间大约为17851年,失效日期为19860-03-05 19:03:41.311
[main] INFO com.demo.App - Started App in 0.754 seconds (JVM running for 1.378)
[main] WARN cn.z.id.Id - 已经初始化过了,不可重复初始化!
ID为:87913675669504
许可证
交流
QQ:1416978277
微信:1416978277
支付宝:1416978277@qq.com