JAVA注解@Scheduled 不执行

 

spring boot项目需要在启动类加上注解 @EnableScheduling

定义一个接口

StockTask.java

1 public interface StockTask {
2     public void task() ;
3 }

定义一个实现类

并继承上面代码

@Component
public class StockTaskImpl implements StockTask {
    
    /**
     * 定时器
     * @throws IOException
     */
    @Scheduled(fixedRate=30000)
    @Override
    public void task() {
        System.err.println("每30s执行一次");
    }
    
}

 

 

如果是Spring的项目需要配置一下bean

<beans xmlns:task="http://www.springframework.org/schema/task"

xsi:schemaLocation="http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd">

       <!--开启这个配置,spring才能识别@Scheduled注解 -->
        <task:annotation-driven scheduler="qbScheduler" mode="proxy"/>  
        <task:scheduler id="qbScheduler" pool-size="10"/>
        <!-- 自动扫描包(也就是自己添加的定时器路径) -->
        <context:component-scan base-package="com.dj.dao,com.dj.service" />

</beans>

  运行之后就可以自动执行了

 

 

 

 

 

 

 

 

posted @ 2021-02-25 13:41  是白杨  阅读(2391)  评论(0编辑  收藏  举报