sequence-spring-boot-starter

spring boot starter依赖

方便在 web 环境下使用 sequence,已上传至 maven 仓库

  1. <dependency>
  2. <groupId>com.litong.boot</groupId>
  3. <artifactId>sequence-spring-boot-starter</artifactId>
  4. <version>1.0-SNAPSHOT</version>
  5. </dependency>

使用方法

配置文件

  1. cat:
  2. xsequence:
  3. #使用基于db的序列号生成器
  4. db:
  5. enable: true
  6. table-name: sys_test123
  7. retry-times: 3
  8. #使用基于redis的序列号生成器
  9. redis:
  10. enable: true
  11. #使用基于snowflake的序列号生成器
  12. snowflake:
  13. datacenter-id: 0
  14. worker-id: 0

代码使用

1.使用默认spring注入的三种序列号生成器

  1. @Autowired
  2. private Sequence snowflakeSequence;
  3. @Autowired
  4. private Sequence redisSequence;
  5. @Autowired
  6. private Sequence dbSequence;
  7. @Autowired
  8. private DataSource dataSource;
  9. @GetMapping("/demo")
  10. public String demo() {
  11. long sno1 = snowflakeSequence.nextValue();
  12. long sno2 = redisSequence.nextValue();
  13. long sno3 = dbSequence.nextValue();
  14. return "success";
  15. }

2.不使用spring注入方式,自定义业务

  1. @Autowired
  2. private DataSource dataSource;
  3. @Autowired
  4. private RedisProperties redisProperties;
  5. @Autowired
  6. private SequenceDbProperties sequenceDbProperties;
  7. @Autowired
  8. private SequenceRedisProperties sequenceRedisProperties;
  9. @GetMapping("/demo")
  10. public String demo() {
  11. Sequence dbSequence = DbSeqBuilder
  12. .create()
  13. .bizName(new DefaultBizName("1"))
  14. .dataSource(dataSource)
  15. .step(properties1.getStep())
  16. .retryTimes(properties1.getRetryTimes())
  17. .tableName(properties1.getTableName())
  18. .build();
  19. Sequence redisSequence = RedisSeqBuilder
  20. .create()
  21. .bizName(new DateBizName("3"))
  22. .ip(redisProperties.getHost())
  23. .port(redisProperties.getPort())
  24. .auth(redisProperties.getPassword())
  25. .step(sequenceRedisProperties.getStep())
  26. .build();
  27. long sno2 = redisSequence.nextValue();
  28. long sno3 = dbSequence.nextValue();
  29. return "success";
  30. }