依賴導入
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-captcha</artifactId>
<version>5.3.9</version>
</dependency>
SnowFlakeUtil工具類代碼
package com.myutil.id;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
public class SnowFlakeUtil {
private long machineId ;
private long dataCenterId ;
public SnowFlakeUtil(long machineId, long dataCenterId) {
this.machineId = machineId;
this.dataCenterId = dataCenterId;
}
/**
* 成員類,SnowFlakeUtil的實例對象的保存域
*/
private static class IdGenHolder {
private static final SnowFlakeUtil instance = new SnowFlakeUtil();
}
/**
* 外部調用獲取SnowFlakeUtil的實例對象,確保不可變
*/
public static SnowFlakeUtil get() {
return IdGenHolder.instance;
}
/**
* 初始化構造,無參構造有參函數,默認節點都是0
*/
public SnowFlakeUtil() {
this(0L, 0L);
}
private Snowflake snowflake = IdUtil.createSnowflake(machineId,dataCenterId);
public synchronized long id(){
return snowflake.nextId();
}
public static Long getId() {
return SnowFlakeUtil.get().id();
}
}
使用
Long id = SnowFlakeUtil.getId();