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

方法中使用spring注释启动调度程序

长孙翔
2023-03-14

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

@Component
public class ScheduledTasks {
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(fixedRate = 5000)
    public void reportCurrentTime() {
        System.out.println("The time is now {}" + dateFormat.format(new Date()));
    }
}

@SpringBootApplication
@EnableScheduling
public class SpringSheduleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringSheduleApplication.class, args);
    }
}

@Component
    public class ShedullerStarter {
        public void start(){
            ScheduledTasks tasks = new ScheduledTasks();;
            try {
                // some code here
            } finally {
                // start annotation
                tasks.reportCurrentTime();
            }
        }
    }

共有1个答案

邹时铭
2023-03-14

即使没有@springbootapplication也可以启用调度。在项目中的任何bean上使用@enablescheduling

@enablescheduling不仅绑定到Spring Boot应用程序。它是spring框架下的一个注释(不是spring boot jar)。因此任何spring应用程序都可以通过使用@enablescheduling启用调度来指导framework查找@schedule注释。

你可以把它放在任何一个春豆上。例如:

@Configuration
@EnableScheduling
public class AppConfig {

     // various @Bean definitions

}  
 类似资料:
  • 我在简单的Spring Boot应用程序上工作,并希望在它上使用并发线程。为了实现这一点,我在服务方法上使用@Async注释,但是当我添加@Async注释时,SpringDI崩溃。它的工作没有@Async在一个线程没有问题。为了调用服务方法,我创建了jUnit test。错误日志显示DI不起作用,也没有为服务类找到这样的bean。请帮助在Spring上使用@Async运行多个线程。 编辑我试图将测

  • 我在导致问题的方法中使用了,但没有成功。有没有人知道我错过了什么或者做错了什么?在执行其余的事务性操作之前,我不能提交主记录。 我得到的异常是: 这里有一个例子,可以说明我的问题: 在这方面的任何想法都将受到高度赞赏。

  • spring-boot-starter-parent使用1.5.9 依赖关系: 应用: 错误: [12 Sep 2018 20:36:26,702][错误]org.springframework.boot.springapplication:应用程序启动失败java.lang.nosuchmethoder错误:org.springframework.boot.builder.springappli

  • 我很好奇spring注入是如何用注释处理调用方法的。如果我将注释放在一个方法上,并返回一个实例,我理解这会告诉spring通过调用该方法并获得返回的实例来创建一个bean。但是,有时该bean必须用于连接其他bean或设置其他代码。通常的方法是调用带注释的方法来获得一个实例。我的问题是,为什么这不会导致bean的多个实例浮动? 例如,参见下面的代码(摘自另一个问题)。方法是用注释的,因此我想spr

  • 问题内容: 在StackOverflow上有很多类似的问题,但是我找不到任何答案:( 我有像这样的web.xml: 并尝试使用注释配置方法安全性。如我所见,在我看来,它必须由放置在与其他组件相同的上下文中。所以我有以下内容: 和: 添加所有控制器后停止工作的问题。我在日志中有以下内容: 当我删除此元素时,一切正常。如果我将其添加到-没有任何变化。似乎没有使用它,因为任何人都可以使用带有(或任何其他