Files
spring-seq/src/main/java/com/yanghuanglin/springseq/config/SeqGeneratorConfig.java
2022-02-11 14:48:01 +08:00

47 lines
1.6 KiB
Java

package com.yanghuanglin.springseq.config;
import com.yanghuanglin.seq.config.GeneratorConfig;
import com.yanghuanglin.seq.config.TableConfig;
import com.yanghuanglin.seq.generator.Generator;
import com.yanghuanglin.seq.generator.impl.SequencesGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.transaction.support.TransactionTemplate;
import javax.annotation.Resource;
@Configuration
public class SeqGeneratorConfig {
@Resource
private JdbcTemplate jdbcTemplate;
@Resource
private TransactionTemplate transactionTemplate;
@Bean
public TableConfig tableConfig() {
TableConfig tableConfig = new TableConfig();
tableConfig.setTable("sequences");
tableConfig.setKeyColumn("SEQUENCE_KEY");
tableConfig.setTypeColumn("SEQUENCE_TYPE");
tableConfig.setSeqColumn("NEXT_ID");
return tableConfig;
}
@Bean
public GeneratorConfig generatorConfig(TableConfig tableConfig) {
GeneratorConfig generatorConfig = new GeneratorConfig();
generatorConfig.setJdbcTemplate(jdbcTemplate);
generatorConfig.setTransactionTemplate(transactionTemplate);
generatorConfig.setTableConfig(tableConfig);
generatorConfig.setStep(1);
generatorConfig.setType("MISSION");
return generatorConfig;
}
@Bean
public Generator generator(GeneratorConfig generatorConfig) {
return new SequencesGenerator(generatorConfig);
}
}