使用配置文件自定义线程池参数

首先创建线程池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>

在配置文件中可以配置相关参数:
使用配置文件自定义线程池参数_第1张图片

这里配置完成以后,需要在MyThreadConfig 中使用自定义的配置类:
两种方法:
第一:因为ThreadPoolConfigProperties已经被注入,直接在MyThreadConfig 上面使用注解@EnableConfigurationProperties(ThreadPoolConfigProperties.class):
在这里插入图片描述
第二种方法:
将ThreadPoolConfigProperties作为参数传入:
使用配置文件自定义线程池参数_第2张图片

你可能感兴趣的:(springboot,谷粒,java)