此文标题有错,感谢各位网友指出
林炳文Evankaka原创作品。转载请注明出处http://blog.youkuaiyun.com/evankaka
新建一个Java工程,导入要用到的包,Spring3.2、Quartz2.2.1、aopalliance-1.0.jar、commons-logging-1.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;
-
-
-
-
-
- @Component
- public class MyJob {
- public MyJob(){
- System.out.println("MyJob创建成功");
- }
- @Scheduled(cron = "0/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多加下面的内容
4、最后是我们的task任务扫描注解
- <!--开启这个配置,spring才能识别@Scheduled注解-->
- <task:annotation-driven/>
5、自动配置扫描位置:
- <!-- 自动扫描注解的bean -->
- lt;context:component-scan base-package="com.mucfc"/>
6、整个文档如下
- <?xml version="1.0" encoding="UTF-8"?>
- <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-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/task
- http://www.springframework.org/schema/task/spring-task-3.0.xsd">
-
-
- <task:annotation-driven/>
-
- <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) {
-
- ApplicationContext context=new ClassPathXmlApplicationContext("beans.xml");
- }
-
- }
输出结果:

一旦这个xml被加载进来来,就会自动创建bean的实例,并且开始定时任务了
需要注意的几点:
1、spring的@Scheduled注解 需要写在实现上
2、 定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true、具体就去百度google吧)
3、实现类上要有组件的注解@Component
林炳文Evankaka原创作品。转载请注明出处http://blog.youkuaiyun.com/evankaka
本文工程免费下载