quartzy的spring注入问题

<!-- quartz定时器,定时器的类--自己用的类 -->
    <bean id="jobDetailFactoryBean" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass" value="com.myk.oe.utils.QuartzTask"></property>
    </bean>
    <!-- 配置执行时间和规则 -->
    <bean id="quartzTask" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="jobDetailFactoryBean"></property>
        <!-- 5秒一次 -->       
        <property name="cronExpression" value="0/5 * * * * ?"></property>
    </bean>
    <!-- 将bean注入到定时器的类 -->
    <bean id="jobFactory" class="com.myk.oe.quartz.util.JobFactory"></bean>

    <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> 
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
        <property name="triggers">
            <list>
                <ref bean="quartzTask" /><!-- 任务 -->
            </list>
        </property>
        <property name="jobFactory" ref="jobFactory"></property>
        <property name="autoStartup" value="true"/><!-- 自动开始 -->
    </bean>

  定义好定时任务的相关类,在类中调用dao或者service的时候会报空指针异常,

在定时任务的类上加注解@DisallowConcurrentExecution就可以注入service和dao了

@DisallowConcurrentExecution
public class QuartzTask extends QuartzJobBean{

    @Resource(name="appointmentServiceImpl")
    private AppointmentService appointmentService;//这是服务类

    @Override
    protected void executeInternal(JobExecutionContext context)
            throws JobExecutionException {

    List<Appointment> appointments = appointmentService.getAppointments();//获取数据
        System.err.println(appointments);
    }
}

 

转载于:https://www.cnblogs.com/chenKnowledgeConllection/p/8417029.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值