前言
本篇文章为使用雪花算法生成UUID的完整步骤!
一、相关依赖
<!-- 雪花算法生成UUID的相关依赖-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.7.5</version>
</dependency>
二、代码
package com.example.jiaxiaosystem.utils;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import org.springframework.stereotype.Component;
/**
* 雪花算法生成id工具类
*/
@Component
public class IdGeneratorSnowflake {
/**
* 雪花算法生成id
* @param workerId 工作id
* @param datacenterId 数据中心id
* @return 生成id
*/
public static synchronized String snowflakeId(long workerId, long datacenterId){
Snowflake snowflake = IdUtil.getSnowflake(workerId, datacenterId);
return snowflake.nextIdStr();
}
/**
* 雪花算法生成id
* @param workerId 工作id
* @return 生成id
*/
public static synchronized String snowflakeId(long workerId){
Snowflake snowflake = IdUtil.getSnowflake(workerId);
return snowflake.nextIdStr();
}
/**
* 雪花算法生成id
* @return 生成id
*/
public static synchronized String snowflakeId(){
Snowflake snowflake = IdUtil.getSnowflake();
return snowflake.nextIdStr();
}
}
三、使用样例
最简单的案例已经可以满足大部分的应用场景了!
/*
测试雪花算法 获取UUID
*/
@Test
void testGetSnowUUID(){
String id = IdGeneratorSnowflake.snowflakeId();
System.out.println(id);
}
本篇文章仅供个人学习记录,不存在任何商业使用!
如果侵权,请及时联系笔者!