hutool实现雪花算法主键id

package com.ruoyi.lbzb.util;

import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.net.NetUtil;
import cn.hutool.core.util.IdUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 * @Author tan
 * @Date 2021/10/16 16:23
 */
@Component
public class SnowflakeUtil {
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private long workerId = 0;//为终端ID
    private long dataCenterId = 1;//数据中心ID
    private Snowflake snowflake = IdUtil.createSnowflake(workerId,dataCenterId);
    @PostConstruct
    public void init(){
        workerId = NetUtil.ipv4ToLong(NetUtil.getLocalhostStr());
    }
    public synchronized String snowflakeId(){
        return String.valueOf(snowflake.nextId());
    }
    public synchronized long snowflakeId(long workerId,long dataCenterId){
        Snowflake snowflake = IdUtil.createSnowflake(workerId, dataCenterId);
        return snowflake.nextId();
    }
}


版权声明:本文为weixin_47252341原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。