趁着工作闲暇之余,学学spring task,spring task是spring 3.后的一个才有的东西,这个查自网络,没有细细考究,简单做了一下,感觉与spring 注解结合,还是挺好用的,也挺简单。记于此,以备不时之需。如有错误,承蒙赐教。
这个过程中,考虑到以前自己导包,包的版本以及与其他框架结合出问题较多,所以选择用maven来做,pox.xml这个直接网上搜了一个:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
然后在application.xml中加上:
xmlns:task="http://www.springframework.org/schema/task"
以及:
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
考虑到注解加上:
<!--注解说明 -->
<context:annotation-config />
<!-- Spring自动扫描包 -->
<context:component-scan base-package="包路径" />
任务的配置:
<task:executor id="executor" pool-size="5" />
<task:scheduler id="scheduler" pool-size="10" />
<task:annotation-driven executor="executor" scheduler="scheduler" />
其中后面的:pool-size是指线程池的大小。
对于定时执行的类与方法:例如
@Component
public class TestdaoImp implements Testdao{
@Scheduled(cron="0/1 * * * * ? ")
@Override
public void show() {
System.out.println("lov");
}
}
其中@Component表示这是一个组件, @Scheduled(cron="0/1 * * * * ? ")是任务执行的频率,主要要设置cron这个的值,这个值是任务也就是方法多久执行一次。关于如何设置这个值,可以网上搜索spring task cron设置,就可以找到设置的方法了。
不忘初心,风雨无阻。