程序员人生 网站导航

[置顶] 【Quartz】基于Spring注解方式配置Quartz

栏目:互联网时间:2015-05-20 10:24:16
       林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
         在上讲【Quartz】Spring3.2.9+Quqrtz2.2.1实现定时实例中,我们使用了XML的方式来配置Quartz定时任务,虽然比用API的方式简便多了,但是Spring还支持基本注解的方式来配置。这样做不但更加简单,而且代码量也更加少了。

        新建1个Java工程,导入要用到的包,Spring3.2、Quartz2.2.1、aopalliance⑴.0.jar、commons-logging⑴.2.jar。全部工程目录以下:



1、配置需要调度的类,并添加注解
package com.mucfc; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** *事件类,基于Spring注解方式 *作者 林炳文(ling20081005@126.com 博客:http://blog.csdn.net/evankaka) *时间 2015.4.29 */ @Component public class MyJob { public MyJob(){ System.out.println("MyJob创建成功"); } @Scheduled(cron = "0/1 * * * * ? ")//每隔1秒隔行1次 public void run(){ System.out.println("Hello MyJob "+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ").format(new Date())); } }
2、首先要配置我们的beans.xml,在xmlns 多加下面的内容
xmlns:task="http://www.springframework.org/schema/task"
3、然后xsi:schemaLocation多加下面的内容
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task⑶.0.xsd

4、最后是我们的task任务扫描注解

<!--开启这个配置,spring才能辨认@Scheduled注解--> <task:annotation-driven/>
5、自动配置扫描位置:

<!-- 自动扫描注解的bean --> <context:component-scan base-package="com.mucfc"/>
6、全部文档以下
<?xml version="1.0" encoding="UTF⑻"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans⑶.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context⑶.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task⑶.0.xsd"> <!--开启这个配置,spring才能辨认@Scheduled注解--> <task:annotation-driven/> <!-- 自动扫描注解的bean --> <context:component-scan base-package="com.mucfc"/> </beans>
7、使用
package com.mucfc; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml"); } }

输出结果:


1旦这个xml被加载进来来,就会自动创建bean的实例,并且开始定时任务了
需要注意的几点:
1、spring的@Scheduled注解  需要写在实现上
2、 定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告知你有个毛病、需要设定1个proxytargetclass的某个值为true、具体就去百度google吧)
3、实现类上要有组件的注解@Component

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐