sequence-spring-boot-starter
spring boot starter依赖
方便在 web 环境下使用 sequence,已上传至 maven 仓库
<dependency><groupId>com.litong.boot</groupId><artifactId>sequence-spring-boot-starter</artifactId><version>1.0-SNAPSHOT</version></dependency>
使用方法
配置文件
cat:xsequence:#使用基于db的序列号生成器db:enable: truetable-name: sys_test123retry-times: 3#使用基于redis的序列号生成器redis:enable: true#使用基于snowflake的序列号生成器snowflake:datacenter-id: 0worker-id: 0
代码使用
1.使用默认spring注入的三种序列号生成器
@Autowiredprivate Sequence snowflakeSequence;@Autowiredprivate Sequence redisSequence;@Autowiredprivate Sequence dbSequence;@Autowiredprivate DataSource dataSource;@GetMapping("/demo")public String demo() {long sno1 = snowflakeSequence.nextValue();long sno2 = redisSequence.nextValue();long sno3 = dbSequence.nextValue();return "success";}
2.不使用spring注入方式,自定义业务
@Autowiredprivate DataSource dataSource;@Autowiredprivate RedisProperties redisProperties;@Autowiredprivate SequenceDbProperties sequenceDbProperties;@Autowiredprivate SequenceRedisProperties sequenceRedisProperties;@GetMapping("/demo")public String demo() {Sequence dbSequence = DbSeqBuilder.create().bizName(new DefaultBizName("1")).dataSource(dataSource).step(properties1.getStep()).retryTimes(properties1.getRetryTimes()).tableName(properties1.getTableName()).build();Sequence redisSequence = RedisSeqBuilder.create().bizName(new DateBizName("3")).ip(redisProperties.getHost()).port(redisProperties.getPort()).auth(redisProperties.getPassword()).step(sequenceRedisProperties.getStep()).build();long sno2 = redisSequence.nextValue();long sno3 = dbSequence.nextValue();return "success";}
