v1.0 支持DB方式生成序列號html
文檔:https://my.oschina.net/u/1271235/blog/1808103java
v1.1 支持Redis方式生成序列號算法
文檔:https://my.oschina.net/u/1271235/blog/1809437spring
v1.2 支持雪花算法生成序列號spa
(1)API使用方式.net
public class SnowflakeTest_Api { private Sequence userSeq; @Before public void setup() { SnowflakeSequence snowflakeSequence = new SnowflakeSequence(); snowflakeSequence.setDatacenterId(1); snowflakeSequence.setWorkerId(2); userSeq = snowflakeSequence; } @Test public void test() { long start = System.currentTimeMillis(); for (int i = 0; i < 100; i++) { System.out.println("++++++++++id:" + userSeq.nextValue()); } System.out.println("interval time:" + (System.currentTimeMillis() - start)); } }
(2)Spring使用方式code
xml配置xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd" default-autowire="byName" default-lazy-init="false"> <!-- 具體使用demo --> <bean id="userSeq" class="com.xuanner.seq.sequence.impl.SnowflakeSequence"> <property name="workerId" value="1"/> <property name="datacenterId" value="2"/> </bean> </beans>
代碼使用htm
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:snowflake-test.xml" }) public class SnowflakeTest_Spring { @Autowired private Sequence userSeq; @Test public void test() { for (int i = 0; i < 1000; i++) { System.out.println("++++++++++id:" + userSeq.nextValue()); } } }