项目架构:SpringMVC+spring-task+Mybatis+xfire+oracle
在调用别人接口传数据时,遇到Spring不能注入的问题
解决方案为重写jobFactory:
方法类
package com.shensu.common; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.scheduling.quartz.AdaptableJobFactory; import org.quartz.spi.TriggerFiredBundle; public class MyJobFactory extends AdaptableJobFactory{ //这个对象Spring会帮我们自动注入进来,也属于Spring技术范畴. @Autowired private AutowireCapableBeanFactory capableBeanFactory; protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception { //调用父类的方法 Object jobInstance = super.createJobInstance(bundle); capableBeanFactory.autowireBean(jobInstance); return jobInstance; } }
在Spring配置文件中加入以下配置
<bean id="schedulerista" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="jobFactory"> <bean class="com.shensu.common.MyJobFactory" /> </property> </bean>
在次运行就成功了!