问题

我们有时需要执行一些定时任务(如数据批处理),比较常用的技术框架有Spring + Quartz中。无奈此方式有个问题:Spring Bean无法自动注入。

环境:Spring3.2.2 + Quartz1.6.1

Quartz配置:

<bean id="traderRiskReportJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="traderNoServerResource" />
<property name="targetMethod" value="queryTraderNo" />
<property name="concurrent" value="true" />
</bean>

service配置:

<bean name="traderNoServerResource" class="com.test.TraderNoServerResource" ><property name="threadPool" ref="threadPool"/>
</bean>

ThreadPool配置:

 <bean name="threadPool" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" ><property name="corePoolSize" value="25"></property><property name="maxPoolSize" value="100"></property></bean>

出现的问题是:traderNoServerResource中的threadPool为null。

解决方法

  1. 成员变量添加注解@Autowired

  2. 然后在方法中(如例子中的queryTraderNo方法)添加以下代码,自动注入成员变量实现类

    SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);

关于引发这个问题的原因,有待深入验证。说的比较多的是Quartz与SpringMVC的context不同,父context无法访问子context中的bean。

参考资料

http://stackoverflow.com/questions/6990767/inject-bean-reference-into-a-quartz-job-in-spring

解决Spring+Quartz无法自动注入bean问题相关推荐

  1. Spring系列之自动注入(autowire)详解

    本文内容 手动注入的不足 Class.isAssignableFrom方法介绍 3种自动注入方式详解及案例 按名称自动注入 按类型自动注入 按构造器进行自动注入 按类型自动注入某种类型的所有bean给 ...

  2. java手工注入bean_java相关:Spring中如何动态注入Bean实例教程

    java相关:Spring中如何动态注入Bean实例教程 发布于 2020-3-8| 复制链接 摘记: 前言在Spring中提供了非常多的方式注入实例,但是由于在初始化顺序的不同,基于标注的注入方式, ...

  3. 跟杨春娟学Spring笔记:自动装备Bean

    跟杨春娟学Spring笔记:自动装配Bean 完成:第一遍 1.如何自动装配Bean? 要使用自动装配,就需要配置< bean >元素的autowire属性 名称:byName 说明:根据 ...

  4. springMVC通过spring.xml对属性注入bean值(工厂模式)

    springMVC通过spring.xml对属性注入bean值,该bean是一个map容器: <bean id="configXMLCreatorFactory" class ...

  5. 解决Spring Boot 拦截器注入service为空的问题

    解决Spring Boot 拦截器注入service为空的问题 参考文章: (1)解决Spring Boot 拦截器注入service为空的问题 (2)https://www.cnblogs.com/ ...

  6. 解决spring coud打包报Singleton bean creation not allowed while singletons of this factory are in destruct

    解决spring coud打包报Singleton bean creation not allowed while singletons of this factory are in destruct ...

  7. 五)Spring + Quartz 复杂业务的两个问题:获取Spring上下文 和 自动注入服务类

    配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:// ...

  8. 【Spring学习】spring注解自动注入bean

    Spring mvc注解用到的配置: <!-- 启用spring mvc 注解 --> <context:annotation-config /> <context:co ...

  9. 网店版重生系列:都是Spring配置中自动注入惹的祸

    在对Spring Container管理的bean进行配置时,有一个很好用的功能就是自动注入,可以根据不同规则对bean所依赖的bean进行自动set,相信最常用的就是设置default-autowi ...

最新文章

  1. Android数据持久化:文件存储
  2. Ubuntu 14.04 64bit上升级Intel官方集显更新驱动程序
  3. 使用python函数计算3.5四舍五入的结果_python 数字的四舍五入-Go语言中文社区
  4. tensorflow基础-placeholder
  5. python语句print(tuple(range(2)))_Python学习(四)数据结构 —— list tuple range
  6. SQL Server DATEDIFF() 函数计算时间差
  7. [z]Qt 内存管理机制
  8. EL表达式(web作业)
  9. HDU 6113 度度熊的01世界【DFS/Flood Fill】
  10. 51Nod 1509加长棒
  11. xcap发包工具的简单使用1(构造报文)
  12. ActiveMQ集群安装与配置
  13. 用计算机做图画ppt,用计算机画图课件.ppt
  14. java: 未报告的异常错误org.json.JSONException; 必须对其进行捕获或声明以便抛出
  15. 表情识别(二)——使用Dlib、opencv和Python标记和提取脸部的特定区域
  16. 【LeetCode 876】链表的中间结点
  17. 2D转换分页按钮的制作流程(12)
  18. mmrotate学习记录
  19. HDU--1871--细节处理--记忆化暴力查找
  20. python 练习题目

热门文章

  1. VisualNet铁路通信管理
  2. 8个超棒的使用javascript开发的视觉特效网站
  3. discuz! 7.2 manyou插件暴路径Get Webshell 0day
  4. 进程间通信(IPC)之内存映射mmap和共享内存shm
  5. 如何简单快速的了解区块链技术(结尾有惊喜)
  6. 删除字符串中指定的字符形成字符串
  7. 分布式事务实践 解决数据一致性 分布式系统
  8. Golang 大杀器之跟踪剖析 trace(转载)
  9. oh-my-zsh扫描git仓库卡慢的解决方法
  10. kvm 调试内核方法