变更包名
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
package com.yanghuanglin.springseq;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class SpringSeqApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(SpringSeqApplication.class, args);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
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("SEQUENCE_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);
|
||||
}
|
||||
}
|
||||
45
src/main/java/com/yanghuanglin/springseq/config/Startup.java
Normal file
45
src/main/java/com/yanghuanglin/springseq/config/Startup.java
Normal file
@@ -0,0 +1,45 @@
|
||||
package com.yanghuanglin.springseq.config;
|
||||
|
||||
import com.yanghuanglin.seq.generator.Generator;
|
||||
import com.yanghuanglin.seq.po.Sequences;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Component
|
||||
public class Startup implements ApplicationRunner {
|
||||
@Resource
|
||||
private Generator generator;
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) {
|
||||
//释放未锁定序列号
|
||||
generator.release();
|
||||
|
||||
Set<String> set = new HashSet<>();
|
||||
//开启多线程进行测试
|
||||
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 10, 1, TimeUnit.MINUTES, new ArrayBlockingQueue<>(100));
|
||||
for (int i = 0; i < 5; i++) {
|
||||
threadPoolExecutor.execute(() -> {
|
||||
Sequences sequences = generator.generate("SNT", "MISSION");
|
||||
String formattedSeq = generator.format(sequences.getSeq(), 5, "处〔#year#〕10801#seq#");
|
||||
generator.lock(sequences);
|
||||
set.add(formattedSeq);
|
||||
System.out.println(formattedSeq);
|
||||
});
|
||||
}
|
||||
threadPoolExecutor.shutdown();
|
||||
while (true) {
|
||||
if (threadPoolExecutor.isTerminated())
|
||||
break;
|
||||
}
|
||||
System.out.println(set.size());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user