spring3.0定时器 xml配置和注解方式

1.xml配置方式

web.xml

<!-- 配置spring监听器和配置文件路径 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

spring配置文件

     
     <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:task="http://www.springframework.org/schema/task"
     xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"
    
    <task:scheduled-tasks>   

        <task:scheduled ref="taskJob" method="job1" cron="0 * * * * ?"/>   

    </task:scheduled-tasks> 

    <context:component-scan base-package="com.gy.mytask" />

这里定时每分钟的的零秒开始执行

cron="0 * * * * ?"

java类,方法无返回值

package com.gy.mytask;

import org.springframework.stereotype.Service;

@Service

public class TaskJob {

    public void job1() {

        System.out.println("任务进行中。。。");
        System.out.println(Thread.currentThread().getName());

    }

}

2.注解方式

spring配置文件

    
    
     <context:annotation-config />  <!-- 可以去掉 -->
     
    <context:component-scan base-package="com.gy.mytask" />
    
    <!-- 开启这个配置,spring才能识别@Scheduled注解 -->     

    <task:annotation-driven />

<context:annotation-config/>

作用是显式地向 Spring 容器注册

AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、

PersistenceAnnotationBeanPostProcessor 以及 RequiredAnnotationBeanPostProcessor 这 4 个BeanPostProcessor。注册这4个 BeanPostProcessor的作用,就是为了你的系统能够识别相应的注解。

因此当使用 <context:component-scan/> 后,就可以将 <context:annotation-config/> 移除了。

java类

package com.gy.mytask;

import org.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Service;

@Service  

public class TaskJob {
    @Scheduled(cron = "0 * * * * ?")
    public void job1() {

        System.out.println("任务进行中。。。");

    }

}

默认是单线程的

pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1
任务进行中。。。
pool-1-thread-1

参考文章:

http://my.oschina.net/u/559635/blog/389558

http://blog.sina.com.cn/s/blog_872758480100wtfh.html

本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1741155

时间: 2025-01-02 00:55:29

spring3.0定时器 xml配置和注解方式的相关文章

关于繁星类的spring注入问题,xml配置非注解

问题描述 自已定义了一个基类如下:publicclassBaseDaoImpl<T>implementsBaseDao<T>{privateSqlSessionTemplatesqlSessionTemplate;publicSqlSessionTemplategetSqlSessionTemplate(){returnsqlSessionTemplate;}publicvoidsetSqlSessionTemplate(SqlSessionTemplatesqlSessionTe

Spring使用AspectJ注解和XML配置实现AOP_java

本文演示的是Spring中使用AspectJ注解和XML配置两种方式实现AOP 下面是使用AspectJ注解实现AOP的Java Project 首先是位于classpath下的applicationContext.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmln

基于注解的Spring MVC(所需jar包,web.xml配置,Spring文件配置,@Controller,@RequestMapping,@RequestParam,model填参,EL取值)

1.添加jar 2.web.xml配置: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5"  xmlns="http://java.sun.com/xml/ns/javaee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLoca

Hibernate一个一对多的配置,不知道怎么从xml改为注解

问题描述 我详细贴出代码说下吧 类的关系是:   目录:SiteDirectory继承Directory   目录关系:SiteDirectorySubjection继承DirectorySubjection public class Directory extends BasePojo { private Set<? extends DirectorySubjection> subjections; //目录的上级目录 private Set<? extends DirectorySu

xml和注解混用-spring2.5注解和xml配置混用

问题描述 spring2.5注解和xml配置混用 在使用spring2.5进行开发时,发现一个问题:使用xml配置的bean可以注入到使用Annotation注解的bean里面,**但是使用Annotation注解的bean不能注入到使用xml配置的bean里**面,请问有解决的方法吗? 解决方案 Spring2.5基于注解和XML配置事务管理Spring2.5注解式的配置spring2.5注解 解决方案二: 应该 优先使用注解,XML只做一些数据源或配置文件 等 的.基本上所有的bean都用注

Spring的注解配置与XML配置之间的比较_java

注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名.类型等信息,如果关系表字段和 PO 属性名.类型都一致,您甚至无需编写任务属性映射信息--因为这些信息都可以通过 Java 反射机制获取. 注释和 Java 代码位于一个文件中,而 XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和 Java 代码放在一起,

最小化Spring XML配置

spring提供了几种技巧,可以帮助我们减少XML的配置数量: 1.自动装配(autowiring)有助于减少甚至消除配置<property>元素和<constructor-arg>元素,让Spring自动识别如何装配Bean的依赖关系. 2.自动检测(autodiscovery)比自动装配更进了一步,让Spring能够自动识别哪些类需要被配置成Spring Bean,从而减少对<bean>元素的使用.   1.1.自动装配Bean属性 1.1.1.4种类型的自动装配

丢弃重口味的xml配置--spring4用groovy配置bean(转)

  spring4之前,bean的配置可以主要分为两种方式,一种是使用基于xml,个人非常讨厌这种方式,因为明明一件很简单的事,放在xml中就会多了不少繁杂的信息.另一种方式,是从spring3.0开始,spring提供了是基于java的配置,相比于xml的配置方式,看起来会好一点儿.而在几天前release的spring4.0中,我们可以用groovy作为spring的配置文件啦!比起最早的基于xml配置,使用groovy会更加灵活,而且干扰信息会更少.比起基于java的配置,groovy配置

在Spring中同时使用了Annotation配置和XML配置,spring优先使用哪一个

问题描述 新近接触了SpringMVC3.0,从个人感觉来讲我非常喜欢.之所以从3.0版本才开始学习,也是对于旧版本的XML配置有所忌惮.SpringMVC从2.5版本引入了annotation,到了3.0有了进一步增强.参考了文章http://bulargy.iteye.com/blog/179781的一些观点,我也觉得有时候Annotation较之于XML-configuration有其固有的限制.混搭比较好,比如说想在发布环境上动态修改接口的具体实现,但是不想重新编译Java代码的情况下.