全局ID生成器

Shoulder 提供了两类开箱即用的全局id生成器:StringGuidGeneratorLongGuidGenerator,您可以像这样使用它们。

    @Autowired
    private StringGuidGenerator stringGuidGenerator;

    @Autowired
    private LongGuidGenerator longGuidGenerator;

    public void testGuid() {
        long guidLong = longGuidGenerator.nextId();
        String guidString = stringGuidGenerator.nextId();
        // 批量获取
        long[] guidLongArr = longGuidGenerator.nextIds(10);
        String[] guidStringArr = stringGuidGenerator.nextIds(10);
    }

全局ID生成器-进阶说明

StringGuidGenerator

默认生成算法为 JDKUUID.next() ,若您希望替换框架默认实现,请注入您自己的 StringGuidGenerator Bean 即可,Shoulder 会像 Spring Boot 一样:框架默认能力可替换,应用代码配置会优先生效。

LongGuidGenerator

全局ID生成器是提供了全局趋势递增的唯一id号,且兼容短时间 时钟回拨

该生成器的生成算法,借鉴了 雪花算法,故需要一个 元始间戳LongGuidGenerator 的默认元时间戳为 2018年起算,相当于比标准的时间戳/雪花算法的可用时间延长了几十年;
若您想自定义 元时间戳,可以通过以下配置设置(值为标准毫秒时间戳):
YAML
shoulder:
  guid:
    timeEpoch: 1596211200000