当前位置: 首页 > 知识库问答 >
问题:

在spring中为@scheduled注释添加调度程序而不使用xml注释

方英耀
2023-03-14

共有1个答案

巫研
2023-03-14

可以使用java配置来完成。但不使用注释属性。

您可以查看Spring API文档中的一些扩展示例。

例如:

 @Configuration
 @EnableScheduling
 public class AppConfig implements SchedulingConfigurer {

     @Override
     public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
         taskRegistrar.setScheduler(taskScheduler());
     }

     @Bean(destroyMethod="shutdown")
     public Executor taskScheduler() {
         return Executors.newScheduledThreadPool(42);
     }

 }
 @Configuration
 @EnableScheduling
 public class AppConfig implements SchedulingConfigurer {

     [...]

     @Bean(destroyMethod="shutdown", name = "taskSchedulerA")
     public Executor taskSchedulerA() {
         return Executors.newScheduledThreadPool(42);
     }
     @Bean(destroyMethod="shutdown", name = "taskSchedulerB")
     public Executor taskSchedulerA() {
         return Executors.newScheduledThreadPool(42);
     }
 }


 @Service
 public class MyService {
      @Autowired @Qualifier("taskSchedulerA")
      private Executor taskSchedulerA; 
      @Autowired @Qualifier("taskSchedulerB")
      private Executor taskSchedulerB; 

      @PostConstruct
      public void schedule(){
        Executors.newScheduledThreadPool(42).schedule(new Runnable() {
          @Override
          public void run() {
            functionOfGroupA();
          }
    } , ..);

      }
 }
 类似资料:
  • 我想把spring注释@Scheduled添加到spring bean中,并在另一个类中的方法中启动task。在spring引用中只有一种启动task的方法--Scheduling-Tasks。如何在没有@SpringBootApplication和Spring Boot运行器的情况下启动它。

  • 下面是我的代码, 我无法用注释来注释类, Netbean IDE说注释类型不适用于这种声明。 我用netbeans运行JDK 1.6和Jaxb 1.5。 感谢您的任何帮助。

  • 我有一个简单的类叫BeaconDao 然而,当我用@service或@component标记beaconDao时,一切都运行得非常好。有人能看出问题所在吗?

  • 我发现解决方案是在dispatcher上下文配置中插入“ ”元素。 我觉得这可能是一个糟糕的解决方案,因为我的应用程序上下文配置文件中有类似的“ ”,以便一次性处理所有其他依赖项。 问题是为什么 在应用程序级别没有正确地选择@requestmapping注释?我知道我可以限制组件扫描的基础包在应用程序级别的某些包,但我的意图是只使用一个组件扫描在应用程序级别,仅此而已。我真的必须使用两个不同的组件

  • 我只想使用@scheduler注释定期运行spring boot main方法。我已经指定了一些附加代码,这些代码将在启用REST服务之前执行一些预操作。 我想每10秒运行一次上面的主方法。并在主方法中添加了@时间表注释。但它抛出了一个例外: 根据doc@Scheduler的预期行为应调用一个没有args[]的方法 我想在main方法中使用注释,如下所示: 错误: 组织。springframewo