camellia-id-gen-spring-boot-starters 如何使用
时间: 2023-07-28 18:10:20 浏览: 66
camellia-id-gen-spring-boot-starters 的使用步骤如下:
1. 在 pom.xml 中添加依赖
```xml
<dependency>
<groupId>com.netease.nim</groupId>
<artifactId>camellia-id-gen-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
```
或者
```xml
<dependency>
<groupId>com.netease.nim</groupId>
<artifactId>camellia-id-gen-spring-boot-starter-jdbc</artifactId>
<version>1.0.0</version>
</dependency>
```
如果需要使用基于内存的 ID 生成器,可以使用 camellia-id-gen-spring-boot-starter;如果需要使用基于数据库的 ID 生成器,可以使用 camellia-id-gen-spring-boot-starter-jdbc。
2. 配置
在 application.properties 或 application.yml 中配置 camellia.idgen,例如:
```properties
# 基于内存的 ID 生成器配置
camellia.idgen.data-center-id=1
camellia.idgen.worker-id=1
camellia.idgen.sequence-bits=12
# 基于 Redis 的 ID 生成器配置
camellia.idgen.redis.host=127.0.0.1
camellia.idgen.redis.port=6379
camellia.idgen.redis.password=123456
camellia.idgen.redis.database=0
camellia.idgen.redis.key-prefix=idgen
camellia.idgen.data-center-id=1
camellia.idgen.worker-id=1
camellia.idgen.sequence-bits=12
# 基于数据库的 ID 生成器配置
camellia.idgen.jdbc.url=jdbc:mysql://127.0.0.1:3306/test
camellia.idgen.jdbc.username=root
camellia.idgen.jdbc.password=123456
camellia.idgen.jdbc.table-name=idgen
camellia.idgen.data-center-id=1
camellia.idgen.worker-id=1
camellia.idgen.sequence-bits=12
```
可以根据实际情况进行配置,具体参数的含义可以参考源码或官方文档。
3. 使用
在代码中注入 IdGenerator 对象,然后调用 nextId() 方法即可生成唯一 ID,例如:
```java
@Service
public class UserService {
@Autowired
private IdGenerator idGenerator;
public User createUser(User user) {
user.setId(idGenerator.nextId());
// ...
return user;
}
}
```
注意:如果使用的是基于数据库的 ID 生成器,需要先创建 idgen 表,该表的结构如下:
```sql
CREATE TABLE `idgen` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`data_center_id` int(11) NOT NULL,
`worker_id` int(11) NOT NULL,
`sequence` bigint(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```