开发者社区 问答 正文

quartz 中service不能注入?

@Controller
public class SystemJob extends QuartzJobBean {
 
    private TaoBaoService taoBaoService;
 
    @Override
    protected void executeInternal(final JobExecutionContext context)
            throws JobExecutionException {
        System.out.println(taoBaoService);
        taoBaoService.test();
    }
 
    @Autowired
    public void setTaoBaoService(final TaoBaoService taoBaoService) {
        this.taoBaoService = taoBaoService;
    }
 
    @RequestMapping("test")
    public void test() {
        System.out.println(taoBaoService);
        System.out.println("test..");
    }
}

<!-- quartz -->
<bean id="systemJob" class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass" value="com.pqc.tbk.web.scheduling.SystemJob"></property>
</bean>
<bean id="myCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail">
        <ref bean="systemJob"/>
    </property>
    <property name="cronExpression" value="0 10 0 * * ? *"/>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="myCronTrigger"/>
        </list>
        </property>
    </bean>

直接通过地址栏访问test打印的不是null

但是通过任务执行,打印的是null,奇怪的是既然service是null,执行test()方法竟然没有报空指针?应该是注入成功了啊?

展开
收起
a123456678 2016-03-13 14:25:24 2858 分享 版权
1 条回答
写回答
取消 提交回答
  •  <!-- quartz -->
     <bean id="systemJob"
     class="org.springframework.scheduling.quartz.JobDetailBean">
     <property name="jobClass" value="com.wcyy.datasync.job.SyncInventoryJob"></property>
     <property name="jobDataAsMap">
     <map>
     <entry key="systemConfig" value-ref="systemConfig" />
     </map>
     </property>
     </bean>

    放到 jobDataAsMap 里就可以了

    2019-07-17 19:02:33
    赞同 展开评论
问答地址: