首先创建线程池MyThreadConfig :
@Configuration
public class MyThreadConfig {
@Bean
public ThreadPoolExecutor threadPoolExecutor(){
return new ThreadPoolExecutor(20,
200,10,
TimeUnit.SECONDS,new LinkedBlockingDeque<>(100000),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy());
}
}
再创建线程池配置类ThreadPoolConfigProperties:
@ConfigurationProperties(prefix = "gulimall.thread")
@Component
@Data
public class ThreadPoolConfigProperties {
//线程池核心大小
private Integer coreSize;
//最大大小
private Integer maxSize;
//休眠时长
private Integer keepAlive;
}
这里的gulimall.thread
为配置文件中的前缀
pom文件中加上依赖,可以自动补全配置文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
在配置文件中可以配置相关参数:
这里配置完成以后,需要在MyThreadConfig 中使用自定义的配置类:
两种方法:
第一:因为ThreadPoolConfigProperties已经被注入,直接在MyThreadConfig 上面使用注解@EnableConfigurationProperties(ThreadPoolConfigProperties.class):
第二种方法:
将ThreadPoolConfigProperties作为参数传入: