Мне нужно запланировать задание при создании сеанса. Так что я создал свой HttpSessionListener:Spring TaskScheduler Bean не вводится
@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! -----------------------");
}
Но моя большая проблема здесь состоит в том, что мой TaskScheduler компонент не вводили (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;
}
}
Я использую Spring Ботинок, у меня нет файла конфигурации. Это конфигурация на основе Java (как видно из второго фрагмента кода). @Autowired и @Qualifier не работают для TaskScheduler (работает для PanierService)
«@ Autowired» не работает для 'taskScheduler'? Автоматически сканируется? share spring config file. – Braj
Не могли бы вы попробовать только с помощью '@ Autowired'. Удалите '@ Qualifier'. – Mithun
не могли бы вы рассказать о конфигурации xml, которую используете? вы определили taskScheduler в своей конфигурации? – Ankit