quartzy的spring注入问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!-- 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);
    }
}
复制代码

 

posted @   今年我十八岁  阅读(187)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示