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); } }