作者:钟剑华 历史版本:1 更新时间:2024-09-20 15:13
主键生成策略接口
com.lc.ibps.api.base.id.IdGenerator.java
主键生成策略实现
1.系统默认实现
com.lc.ibps.base.framework.id.DefaultIdGenerator.java
2.使用hutool工具生成id实现类(hutool实现的Snowflake ID)
com.lc.ibps.base.framework.id.HutoolSnowflakeIdGenerator.java
3.使用hutool工具生成id实现类
com.lc.ibps.base.framework.id.UUIDGenerator.java
默认主键注入
1.配置类
com.lc.ibps.base.framework.config.BaseFrameworkConfigure
@Configuration
@ConditionalOnProperty(prefix = "com.lc.db.id", name = "enabled", havingValue = "true", matchIfMissing = true)
public class BaseFrameworkConfigure {
@Bean
@DependsOn({"appUtil"})
@ConditionalOnMissingBean({IdGenerator.class})
public IdGenerator idGenerator() {
return new DefaultIdGenerator();
}
/*
<bean id="uniqueIdUtil" class="com.lc.ibps.base.framework.id.UniqueIdUtil">
<property name="idGenerator" ref="idGenerator"></property>
</bean>
*/
@Bean
public UniqueIdUtil uniqueIdUtil(IdGenerator idGenerator) {
UniqueIdUtil util = new UniqueIdUtil();
util.setIdGenerator(idGenerator);
return util;
}
}
如何自定义主键策略
1. 实现IdGenerator和InitializingBean接口,参考DefaultIdGenerator类,如创建DemoGenerator类
2. 在项目中注入自定义DemoGenerator,如在platform项目的InitialConfigure类中添加方法,方法如下
@Bean
@DependsOn({"appUtil"})
public IdGenerator idGenerator() {
return new DemoGenerator();
}