• 集成hutool依赖,实现雪花算法工具类


    依赖导入

    <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();
    
  • 相关阅读:
    NETCore下IConfiguration和IOptions的用法
    关于将vs项目推到GitHub上遇到的问题
    SQL GROUP BY对多个字段进行分组
    sql if else 语句
    CSS
    CSS
    JS
    22 ~ express ~ 内容评论实现
    css ~ a标签占满父级元素
    21 ~ express ~ 内容详情展示 和 阅读数处理
  • 原文地址:https://www.cnblogs.com/Wangddongyu235/p/13782391.html
Copyright © 2020-2023  润新知