spring整合quartz注入service的及动态任务处理问题

本文详述了Spring与Quartz整合时如何注入Service,包括两种方法:直接定时与动态处理定时任务。重点在于解决在使用Spring+Quartz时Service注入的常见问题,强调了正确配置及避免误区的重要性,旨在帮助开发者顺利实现定时任务与Service的交互。
摘要由CSDN通过智能技术生成

本文主要写一下关于spring+quartz的用法,对于quartz基本或原理不太了解的话最好去相关文章了解一下。

ps:个人觉得,quartz和spring+quartz原本的用法还是有着天差地别,所以了解下原理,也没必要把quartz基础的用法都搞懂,实际中一般不会直接使用quartz的。

使用spring+quartz,一般都是web项目中,大多都是为了引入service完成相关业务逻辑。

但网上相关导入service都存在在各种不完整和各种问题。现在我就来整理两种方式:

方式一:直接定时

使用:定时只能写死,不能更改。用于一些不会变量的任务情况

1.设置一个任务类 StockPushTask,在类中编写自己需要实现的方法test

2.配置文件

 spring配置省略,spirng采用注解扫描方式。需要扫描mvc各层的包及此task任务类所在包

注意:要在此类中用@Component注解类和@Resource注解自己需要用到的service类    目的使此类交由spring管理,并为自己装配上所需要的service。

@Component
public class StockPushTask {

	@Resource
	private StockService stockService;
	@Resource
	private UserService userService;
	private JPushUtil jPushUtil;
	
	public void test() {
		System.out.println("————清理开始执行————");
		//清理电子券到期的
		userService.updateVoucher();
		//清理会员到期的
		userService.delUsers();
		System.out.println("————清理执行结束————");
	}
}
spring-quartz.xml中的配置

<!-- 任务类 -->
<bean id="MyScheduler" class="com.stock.way.app.controller.StockPushTask"></bean>
	
<!-- 把任务类绑定给jobDetail对象 -->
   <bean id="jobHand" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
      <property name="targetObject">  
        <ref bean="MyScheduler"/><!-- 指定具体拦截哪个定时任务 -->  
      </property>  
      <property name="targetMethod">  
        <value>test</value><!-- 指定要执行的类里面的哪个方法 -->  
      </property>  
    </bean>  

<!-- 计划触发器,使用 CronTriggerFactoryBean。这种类型更加灵活,允许你针对特定实例选择计划方案以及将来要执行的频率。 -->  
    <bean id="cronTrigger"  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
        <property name="jobDetail" ref="jobHand" />  
        <property name="cronExpression" value="20 54 10 * * ?"
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值