spring定时器,quartz 的用法,如何指定JobDetailBean类的属性jobClass对象的同时,给其注入其它对象?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring定时器,quartz 的用法,如何指定JobDetailBean类的属性jobClass对象的同时,给其注入其它对象?相关的知识,希望对你有一定的参考价值。

简单来说,我的意思是:如果在用定时器指定一个定时任务类的同时,给该类注入sqlMapClient对象

spring定时器,quartz 的用法,JobDetailBean类的属性jobClass对象如何指定,并且在调用该类(定时任务所在的类)时给其注入sqlMapClient对象
1:<property name="jobClass">
2: <value>govstock.timerTask.JobAction</value>
3:<!-- <ref local="JobAction"/> -->
4: </property>

5:<bean id="JobAction" class="govstock.timerTask.JobAction">
6: <property name="sqlMap"><ref bean="sqlMap"/></property>
7: </bean>

如果把第二行注释掉,把第三行放开,则启动时报 jobClass 类不匹配的错误

如果把第三行注释掉,把第二行放开,则可以正常启动,但无法实现给定时任务所在的类注入sqlMapClient对象
不支持注解!

不一定要这样注入的
实现接口ApplicationContextAware
实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。Spring初始化时,会通过该方法将ApplicationContext 对象注入。

直接在你的JobAction代码里面动态取bean sqlMap就是了
参考技术A 不能通过autoWired注解来注入么,注解注入的方式还是比较方便的。@Resource也行,推荐用这个了好像 。实在不行你就别注入了,直接new类好了,反正与访问无关吧。 参考技术B 试试 <ref bean="JobAction"/> 参考技术C 百度一下

以上是关于spring定时器,quartz 的用法,如何指定JobDetailBean类的属性jobClass对象的同时,给其注入其它对象?的主要内容,如果未能解决你的问题,请参考以下文章

关于Spring定时任务(定时器)用法

spring quartz定时任务集群环境下如何实现只在单个节点运行

spring-boot-route(二十一)quartz实现动态定时任务

java web定时任务---quartz

Spring整合quartz实现定时动态任务

Spring整合Quartz实现定时任务