springboot2.0集成百度uidgenerator
github上官方没有springboot的集成方式,
并且如果按官网集成方式,就算在springboot启动类上加入,
@ComponentScan(basePackages = {“net.xxx.xxx”,“com.baidu.fsg.uid”})
也不行,最后启动时会遇到DisposableWorkerIdAssigner注入不了workerNodeDAO的问题
(具体原因是WorkerNodeDAO中的@Repository在springboot项目中没起作用,没找到办法解决)
官网步骤:
https://github.com/baidu/uid-generator/blob/master/README.zh_cn.md
第一第二步按官网步骤走:
步骤2建表时可能会报错,原因是该建表语句定义了两个TIMESTAMP字段,解决办法:
建表前先设置sql_mode:
set sql_mode=“NO_ENGINE_SUBSTITUTION”;
第三步:
(本springboot项目需要已经集成mybatis+druid)
1.拷贝WorkerNodeDAO.java到自己的springboot项目中,命名成WorkerNodeMapper.java
2拷贝WORKER_NODE.xml到自己的springboot项目中,命名成WorkerNodeMapper.xml
(注意命名规范,spring加载mybatis的xml文件会按配置好的目录和文件名加载,如下:)
修改WorkerNodeMapper.xml中的命名空间
3.拷贝DisposableWorkerIdAssigner.java到自己的springboot项目中,修改注入的WorkerNodeDAO为WorkerNodeMapper;
4.创建配置类
或者使用xml配置方式
目录结构:
5.测试: