Files
spring-seq/src/main/java/com/yanghuanglin/springseq/config/SeqGeneratorConfig.java
2022-02-10 11:27:42 +08:00

45 lines
1.5 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);
return generatorConfig;
}
@Bean
public Generator generator(GeneratorConfig generatorConfig) {
return new SequencesGenerator(generatorConfig);
}
}