1、前沿
折腾了一天,终于把xsequence的jar发布到maven上去了。之后就有动力开始,维护一些文档,并不断的升级完善这个组件喽。以后每次升级一次版本都会维护一份文档,说明一些新的特性和使用方式。
2、源码地址
https://gitee.com/xuan698400/xsequence
3、Maven支持
com.xuanner
xsequence-core
1.0
4、DB方式使用说明
(1)API方式使用
public class SequenceTest_Api {
private com.xuanner.seq.sequence.Sequence userSeq;
@Before
public void setup() {
//数据源
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl("jdbc:mysql://121.196.218.206:3306/admin?characterEncoding=UTF-8");
dataSource.setUsername("admin");
dataSource.setPassword("xxx");
dataSource.setMaxActive(300);
dataSource.setMinIdle(50);
dataSource.setInitialSize(2);
dataSource.setMaxWait(500);
//利用DB获取区间管理器
DbSeqRangeMgr dbSeqRangeMgr = new DbSeqRangeMgr();
dbSeqRangeMgr.setDataSource(dataSource);
dbSeqRangeMgr.setTableName("sequence");
dbSeqRangeMgr.setRetryTimes(100);
dbSeqRangeMgr.setStep(100);
dbSeqRangeMgr.setStepStart(0);
dbSeqRangeMgr.init();
//构建序列号生成器
DefaultRangeSequence defaultRangeSequence = new DefaultRangeSequence();
defaultRangeSequence.setName("user");
defaultRangeSequence.setSeqRangeMgr(dbSeqRangeMgr);
userSeq = defaultRangeSequence;
}
@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配置
第一步:配置spring的xml文件:
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">
第二步:直接在代码里面就可以使用了
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:seq-test.xml" })
public class SequenceTest_Spring {
@Autowired
private Sequence userSeq;
@Test
public void test() {
for (int i = 0; i < 1000; i++) {
System.out.println("++++++++++id:" + userSeq.nextValue());
}
}
}