通过@Autowired自动注入ThreadPoolTaskExecutor线程池时报错

Consider revisiting the entries above or defining a bean of type 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor' in your configuration.

通过@Autowired自动注入ThreadPoolTaskExecutor线程池时报错

 

 

研究发现,spring的线程池有两种方式注入
一种是  通过自动注入的方式注入线程池,
  @Autowired
    private ThreadPoolTaskExecutor applicationTaskExecutor;

这种注入的是默认配置的线程池


另一种是 通过配置类的方式配置线程池,然后@Resource(name)注入

@Configuration
public class ExecturConfig {
    @Bean("cacheUpdateTaskExecutor")
    public Executor taskExector() {
 
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        int i = Runtime.getRuntime().availableProcessors();//获取到服务器的cpu内核
        executor.setCorePoolSize(5);//核心池大小
        executor.setMaxPoolSize(100);//最大线程数
        executor.setQueueCapacity(1000);//队列程度
        executor.setKeepAliveSeconds(1000);//线程空闲时间
        executor.setThreadNamePrefix("tsak-asyn");//线程前缀名称
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());//配置拒绝策略
        return executor;
    }

    @Resource(name="cacheUpdateTaskExecutor")
    private ThreadPoolTaskExecutor applicationTaskExecutor;

 

上面报错的原因就是我在配置类重写了线程池配置。同时用@Autowired注入时报错,改为@Resource(name="cacheUpdateTaskExecutor")指定名称就好了

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值