作者:钟剑华  历史版本: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 IDcom.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();
    }