spring quartz 项目调用另外项目的定时类,出现未注入问题

来源:互联网 发布:淘宝网折叠床单人 编辑:程序博客网 时间:2024/05/22 14:54

spring quartz 项目调用另外项目的定时类,出现未注入问题


之前spring 定时器配置文件代码:

<bean name="contentarbitrateservicejob"  class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass">
     <value>com.cbex.channel.jc.common.QuartzTask</value>
    </property>
    <property name="jobDataAsMap">
     <map>
      <entry key="timeout">
       <value>5</value>
      </entry>
     </map>
    </property>
   </bean>


修改后的代码:

 

<!--定时器 要调用的工作类 --> <bean id="quartzJob" class="com.cbex.channel.jc.common.QuartzJob"> <property name="utrCemsUpdatetimeManager"  ref="utrCemsUpdatetimeManager"/><property name="utrmCemsProjectManager"  ref="utrmCemsProjectManager"/> <property name="utrmCemsSellerManager"  ref="utrmCemsSellerManager"/> <property name="utrmCemsBuyerManager"  ref="utrmCemsBuyerManager"/> <property name="utrmCemsBidinfoManager"  ref="utrmCemsBidinfoManager"/> <property name="utrmCemsTenderinfoManager"  ref="utrmCemsTenderinfoManager"/>  <property name="utrmCemsProjectTempManager"  ref="utrmCemsProjectTempManager"/><property name="utrmCemsSellerTempManager"  ref="utrmCemsSellerTempManager"/> <property name="utrmCemsBuyerTempManager"  ref="utrmCemsBuyerTempManager"/> <property name="utrmCemsBidinfoTempManager"  ref="utrmCemsBidinfoTempManager"/> <property name="utrmCemsTenderinfoTempManager"  ref="utrmCemsTenderinfoTempManager"/> </bean>  <!-- 定义调用对象和调用对象的方法 --> <bean id="jobtask"  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  <!-- 调用的类 -->  <property name="targetObject">   <ref bean="quartzJob" />  </property>  <!-- 调用类中的方法 -->  <property name="targetMethod">   <value>work</value>  </property> </bean> <!-- 定义触发时间 --> <bean id="doTime"  class="org.springframework.scheduling.quartz.CronTriggerBean">  <property name="jobDetail">   <ref bean="jobtask" />  </property>  <!-- cron表达式 -->  <property name="cronExpression">   <!-- 第 10秒 隔 5秒执行一次-->   <value>0 */1 * * * ?</value>  </property> </bean> <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean id="startQuertz" lazy-init="false" autowire="no"  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  <property name="triggers">   <list>    <ref bean="doTime" />   </list>  </property> </bean> <!-- 定时器 end -->

调用的java类

/** *  */package com.cbex.channel.jc.common;import java.util.HashMap;import java.util.List;import java.util.Map;import com.cbex.channel.jc.entity.UtrCemsUpdatetime;import com.cbex.channel.jc.manager.UtrCemsUpdatetimeManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsBidinfoManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsBidinfoTempManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsBuyerManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsBuyerTempManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsProjectManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsProjectTempManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsSellerManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsSellerTempManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsTenderinfoManager;import com.cbex.channel.jc.manager.channelm.UtrmCemsTenderinfoTempManager;import com.zbxsoft.api.vo.ParamsVo;/** * @author : chzhou * @date: 日期:2016-5-4 时间:下午01:05:09 * @desc:描述 */public class QuartzJob {private UtrmCemsProjectManager utrmCemsProjectManager;private UtrmCemsSellerManager utrmCemsSellerManager;private UtrmCemsBuyerManager utrmCemsBuyerManager;private UtrmCemsBidinfoManager utrmCemsBidinfoManager;private UtrmCemsTenderinfoManager utrmCemsTenderinfoManager;private UtrmCemsProjectTempManager utrmCemsProjectTempManager;private UtrmCemsSellerTempManager utrmCemsSellerTempManager;private UtrmCemsBuyerTempManager utrmCemsBuyerTempManager;private UtrmCemsBidinfoTempManager utrmCemsBidinfoTempManager;private UtrmCemsTenderinfoTempManager utrmCemsTenderinfoTempManager;private UtrCemsUpdatetimeManager utrCemsUpdatetimeManager;public void work() {  System.out.println("==========定时器");//1.查询记录表记录的最新时间ParamsVo<UtrCemsUpdatetime> vo1 = new ParamsVo<UtrCemsUpdatetime>();Map<String,String> map=new HashMap<String,String>();List<UtrCemsUpdatetime> list = utrCemsUpdatetimeManager.getList(vo1);//查询所有记录表数据for(int i=0;i<list.size();i++){map.put(list.get(i).getUpdateid(), list.get(i).getUpdatetime());}ParamsVo vo=publicSwMothod(map,"1");//2.查询大于记录表最新时间的各个表集合数据List projectTempList = utrmCemsProjectTempManager.getList(vo);//2 把最新的数据集合,同步批量插入到监测库中    if(projectTempList.size()>0){vo = this.getParamsVo(null, projectTempList, "Batch");vo.setObjs(projectTempList);utrmCemsProjectManager.editInfo(vo);  }//批量插入转让方监测库     vo=publicSwMothod(map,"2");List sellerTempList = utrmCemsSellerTempManager.getList(vo);if(sellerTempList.size()>0){vo = this.getParamsVo(null, sellerTempList, "Batch");vo.setObjs(sellerTempList);utrmCemsSellerManager.editInfo(vo); }//批量插入受让方监测库//3 每同步到检测库表做触发器,添加监测库触发更新记录表时间} public void setUtrmCemsProjectManager(UtrmCemsProjectManager utrmCemsProjectManager) {this.utrmCemsProjectManager = utrmCemsProjectManager;}public void setUtrmCemsSellerManager(UtrmCemsSellerManager utrmCemsSellerManager) {this.utrmCemsSellerManager = utrmCemsSellerManager;}public void setUtrmCemsBuyerManager(UtrmCemsBuyerManager utrmCemsBuyerManager) {this.utrmCemsBuyerManager = utrmCemsBuyerManager;}public void setUtrmCemsBidinfoManager(UtrmCemsBidinfoManager utrmCemsBidinfoManager) {this.utrmCemsBidinfoManager = utrmCemsBidinfoManager;}public void setUtrmCemsTenderinfoManager(UtrmCemsTenderinfoManager utrmCemsTenderinfoManager) {this.utrmCemsTenderinfoManager = utrmCemsTenderinfoManager;}//前置库(临时)public void setUtrmCemsProjectTempManager(UtrmCemsProjectTempManager utrmCemsProjectTempManager) {this.utrmCemsProjectTempManager = utrmCemsProjectTempManager;}public void setUtrmCemsSellerTempManager(UtrmCemsSellerTempManager utrmCemsSellerTempManager) {this.utrmCemsSellerTempManager = utrmCemsSellerTempManager;}public void setUtrmCemsBuyerTempManager(UtrmCemsBuyerTempManager utrmCemsBuyerTempManager) {this.utrmCemsBuyerTempManager = utrmCemsBuyerTempManager;}public void setUtrmCemsBidinfoTempManager(UtrmCemsBidinfoTempManager utrmCemsBidinfoTempManager) {this.utrmCemsBidinfoTempManager = utrmCemsBidinfoTempManager;}public void setUtrmCemsTenderinfoTempManager(UtrmCemsTenderinfoTempManager utrmCemsTenderinfoTempManager) {this.utrmCemsTenderinfoTempManager = utrmCemsTenderinfoTempManager;}public void setUtrCemsUpdatetimeManager(UtrCemsUpdatetimeManager utrCemsUpdatetimeManager) {this.utrCemsUpdatetimeManager = utrCemsUpdatetimeManager;}}



然后重新启动,被调用的定时器 QuartzTask类里面调用的utrCemsUpdatetimeManager 属性的 set方法注入进入了。



0 0