spring的applicationContext.xml配置文件:
加入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 |
<bean id= "myJob"
class = "org.springframework.scheduling.quartz.JobDetailBean" > <property name= "jobClass" > <value>com.job.Service</value> </property> </bean> <bean id= "myCronTrigger"
class = "org.springframework.scheduling.quartz.CronTriggerBean" > <property name= "jobDetail" > <ref bean= "myJob" /> </property> <property name= "cronExpression" > <value> 0
0 1 * * ?</value> </property> </bean> <bean id= "schedulerFactory"
class = "org.springframework.scheduling.quartz.SchedulerFactoryBean" > <property name= "jobFactory" > <bean class = "com.JobFactory" /> </property> <property name= "triggers" > <list> <ref bean= "myCronTrigger" /> </list> </property> </bean> |
quartz与spring的BeanFactory整合的类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 |
/** * 为定时器提供自动注入功能 */ public class JobFactory extends
SpringBeanJobFactory implements ApplicationContextAware { private
ApplicationContext applicationContext; @Override public
void setApplicationContext(ApplicationContext applicationContext) throws
BeansException { this .applicationContext = applicationContext; } @Override protected
Object createJobInstance(TriggerFiredBundle bundle) throws
Exception { Object jobInstance = super .createJobInstance(bundle); applicationContext.getAutowireCapableBeanFactory().autowireBean( jobInstance); return
jobInstance; } } |
定时任务类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
public class MyService extends
QuartzJobBean { private
static final Log log = LogFactory.getLog(MyService. class ); @Resource private
UserService userService; @Override protected
void executeInternal(JobExecutionContext jobExecutionContext) throws
JobExecutionException { log.info( "执行定时任务" ); userService.freshUserAmount(); } } |
Quartz中时间表达式的设置-----corn表达式
时间格式: <!-- s m h d m w(?) y(?) -->, 分别对应: 秒>分>小时>日>月>周>年,
spring3.1的BeanFactory与Quartz1.8整合
原文:http://www.cnblogs.com/zhaofeng555/p/3544070.html