小编Yan*_*s26的帖子

Spring TaskScheduler Bean未注入

创建会话时,我需要安排工作。所以我创建了HttpSessionListener:

@Component
public class WebSessionListener implements HttpSessionListener {

//@Autowired
@Qualifier(value = "taskScheduler")
private ThreadPoolTaskScheduler taskScheduler;
@Autowired
private PanierService panierService;

//Notification that a session was created.
@Override
public void sessionCreated(HttpSessionEvent httpSessionCreatedEvent) {

    Runnable viderPanier20mnJob = PanierJobs.getViderPanier20mnJob(httpSessionCreatedEvent.getSession());
    taskScheduler.schedule(viderPanier20mnJob, PanierJobs.getNextDateTime());
    System.out.println("Session Created Called! -----------------------");
}
Run Code Online (Sandbox Code Playgroud)

但是我这里最大的问题是我的TaskScheduler bean没有被注入(NoSuchBeanDefinition或有时只是弹出NullPointerException)。

这是我的TaskScheduler(摘自工作所在的示例):

@Configuration
@EnableScheduling
@EnableAsync
public class JobSchedulingConfig{

  @Bean
   public ThreadPoolTaskExecutor taskExecutor() {

        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        return executor;
    }

    @Bean
    public ThreadPoolTaskScheduler taskScheduler() {

        ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
        return scheduler;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Spring Boot,但没有配置文件。这是基于Java的配置(如第二个代码片段所示)。@Autowired和@Qualifier不适用于TaskScheduler(适用于PanierService)

java jobs spring schedule task

2
推荐指数
1
解决办法
5022
查看次数

标签 统计

java ×1

jobs ×1

schedule ×1

spring ×1

task ×1