45 lines
1.5 KiB
Java
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);
|
|
}
|
|
}
|