spring3.1的BeanFactory与Quartz1.8整合

spring的applicationContext.xml配置文件:

加入

<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整合的类: 

/**

 * 为定时器提供自动注入功能

 */

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;

	}

	

}

 

 定时任务类:

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(?) -->,   分别对应: 秒>分>小时>日>月>周>年, 

你可能感兴趣的:(beanfactory)