将百度的 uid-generator 封装成 spring-boot-starter ,使其可以快速集成到 spring-boot 项目中
-
1、在数据库中建表 参考
src/main/resources/META-INF/WORKER_NODE.sql
-
2、集成依赖(需先将该项目源码下载并打包)
<dependency>
<groupId>com.mogudiandian</groupId>
<artifactId>unique-id-generator</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
- 3、在启动类上引用注解
@EnableUniqueIDGenerator
@EnableUniqueIDGenerator
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class StartApplication {
public static void main(String[] args) {
SpringApplication.run(StartApplication.class, args);
}
}
- 4、加入配置[可选,如果是用spring-boot默认的数据源或数据源的beanName为dataSource则不需要这一步]
unique.id.generator.datasource.name=WORKER_NODE表所在库的数据源名称
- 5、代码中使用
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import com.mogudiandian.unique.id.generator.UniqueIDGenerator;
@Service
public class GeneratorService {
@Autowired
private UniqueIDGenerator uniqueIDGenerator;
public void generate() {
long id = uniqueIDGenerator.generate();
// do something...
}
}
请参考原始仓库 uid-generator中文文档
使用以下命令:
mvn clean install
修改 pom.xml
的 distributionManagement
节点,替换为自己在 settings.xml
中 配置的 server
节点,
然后执行 mvn clean deploy
举例:
settings.xml
<servers>
<server>
<id>snapshots</id>
<username>yyy</username>
<password>yyy</password>
</server>
<server>
<id>releases</id>
<username>xxx</username>
<password>xxx</password>
</server>
</servers>
pom.xml
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<url>http://xxx/snapshots</url>
</snapshotRepository>
<repository>
<id>releases</id>
<url>http://xxx/releases</url>
</repository>
</distributionManagement>