`
mfkujjisk
  • 浏览: 2523 次
社区版块
存档分类
最新评论

spring timer不启动问题

阅读更多
spring写一个timer之后,不启动问题分析。

源文件:
1. timer类文件
@Component("task")
@Lazy
public class Task {
    public Task(){
        System.out.println("construct Task!!!");
    }
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    @Scheduled(cron = "* * * * * ?")
    public void pushQuestionnaire() {

        System.out.println("定时任务1,自动执行:" + format.format(new Date()));
    }
}

2. spring-config.xml主要配置
    <context:annotation-config />
    <context:component-scan base-package="heller"/>
    <!--开启配置-->
    <task:scheduler id="qbScheduler" pool-size="10"/>
    <task:annotation-driven scheduler="qbScheduler" mode="proxy"/>

3. 启动spring
public class Start {
    public static void main(String[] args) throws InterruptedException {
        ApplicationContext context = new ClassPathXmlApplicationContext("./spring-config.xml");       
    }
}

问题
启动Start类后,不能执行Task里面定义的任务

分析
1. 我们看spring-config.xml里面的配置
<task:scheduler id="qbScheduler" pool-size="10"/>表示创建了一个计划任务的线程池实例。
<task:annotation-driven scheduler="qbScheduler" mode="proxy"/>这个注解表示从spring管理的实例中扫描,看是否有实例带有@Scheduled标签的类,如果有则把这个实例放入任务线程池中。而我们的Task类上的注解Lazy默认为true,也就是不会创建实例,所以也就不会加到任务线程池中。

解决办法
在Task类上面加入@Lazy(false)注解
分享到:
评论

相关推荐

    spring 定时器完整实例 demo

    java spring 定时器(精确启动时间) 完整实例 cronExpression 表达式

    Spring.3.x企业应用开发实战(完整版).part2

    经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。...

    Spring Boot中的@Scheduled注解:定时任务的原理与实现

    这个注解主要基于Java的内置Timer类以及Quartz等定时任务库,但在Spring Boot中,它提供了更加简洁和易用的方式来实现定时任务。 # 实现原理 @Scheduled注解的实现原理主要依赖于Spring框架的任务调度机制。当...

    Spring3.x企业应用开发实战(完整版) part1

    经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练使用Spring的各项功能的同时,还能透彻理解Spring的内部实现,真正做到知其然知其所以然。...

    Counter-down-timer

    前端导师 - 启动倒数计时器欢迎! :waving_hand: 感谢您查看此前端编码挑战。 挑战可让您提高现实工作流程中的技能。 要完成这项挑战,您需要对 HTML、CSS 和 JavaScript 有很好的了解。挑战您面临的挑战是构建这个...

    simple-test:对于骆驼用户论坛 - 简单(?!)行为......!

    [pache.camel.spring.Main.main()] SpringCamelContext INFO Apache Camel 2.13.3 (CamelContext: camel-1) 在 0.282 秒内启动 [mel-1) 线程 #0 - timer://foo] MyEvaluator DEBUG 评估: value [mel-1) thread #0 ...

    javaSE代码实例

    16.1.4 启动线程 347 16.1.5 同时使用多个线程 348 16.2 线程的状态 350 16.3 线程的调度 351 16.3.1 睡眠 351 16.3.2 线程的优先级 353 16.3.3 线程的让步 355 16.3.4 守护线程 357 16.4 线程的...

    JAVA上百实例源码以及开源项目

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    JAVA上百实例源码以及开源项目源代码

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

Global site tag (gtag.js) - Google Analytics