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.context.annotation.DependsOn; 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("CURRENT"); return tableConfig; } @DependsOn("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"); generatorConfig.setMinLength(6); return generatorConfig; } @DependsOn("generatorConfig") @Bean public Generator generator(GeneratorConfig generatorConfig) { return new SequencesGenerator(generatorConfig); } }