Bahar varsayılan kurmak spring-boot
kullanıyorum. Ben @EnableScheduling
mekanizmasını kullanın ve koşullu benim görevleri planlamak istiyorum.İlkbahar-önyüklemede TaskScheduler nasıl etkinleştirilir?
Bu nedenle SchedulingConfigurer
uygulamak ve TaskScheduler
açık ayarlamanız gerekir. TaskScheduler
enjekte ederken
Ama şu hatayı alıyorum. Ancak, ilkbahar-önyükleme neden otomatik olarak bir Zamanlayıcı sağlamaz?
@Configuration
@EnableAutoConfiguration
@EnableScheduling
public class AppConfig {
}
@Service
public class JobService implements SchedulingConfigurer {
@Autowired
private TaskScheduler taskScheduler;
//schedule the task dynamically
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(taskScheduler); //fails
taskRegistrar.addTriggerTask(task, trigger);
}
}
Hata: ScheduledTaskRegistrar
üzerine bir zamanlayıcı ayarlamak gerekmez
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.scheduling.TaskScheduler; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.scheduling.TaskScheduler] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:561)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
... 15 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.scheduling.TaskScheduler] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1308)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1054)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:949)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533)
... 17 more
Eğer xml yapılandırma yoluyla kurulum zamanlayıcı denemek mü:
Bu değişiklikler kod aşağıdaki gibi görünen ayrıldım mı? Benim açımdan, açıklama ekli konfigürasyon yolunda bazı problemlerim var, ama xml config ile sorunsuz gidiyor. – sphinks
Çünkü değil. Herkesin bir programlayıcıya ihtiyacı yoktur ve tespit etmek gerçekten mümkün değildir. Yani kendiniz eklemek zorundasınız. –
Ayrıca senin 'SchedulingConfigurer' bir hizmettir, bir' @ Configuration' sınıf olması daha mantıklı olacağını biraz garip. –