天天看點

spring設定定時任務的兩種實作

首先:在beans.xml檔案中引入以下命名空間

xmlns:task="http://www.springframework.org/schema/task"

xsi:schemaLocation="  

http://www.springframework.org/schema/task  

        http://www.springframework.org/schema/task/spring-task.xsd 

然後加入:

<!-- 自動掃描web包 ,将帶有注解的類 納入spring容器管理 -->

<context:component-scan base-package="com.**">

<!--第一種:直接加下面注解,開啟定時任務-->

    <task:annotation-driven/> 

    <!--第二種:配置定時任務 利用cron表達式-->

    <bean id="testTime" class="com.xusoft.spring.TestSpring" />  

    <task:scheduled-tasks>  

        <task:scheduled ref="testTime" method="per" cron="3/30 * * * * ?" />

    </task:scheduled-tasks>

任務實作:

基于第一種方式:

@Component

public class TestTime {

@Scheduled(cron="0 15 18  * * ? ")

public void testTask(){

for (int i = 0; i < 10; i++) {

System.out.println("lp");

}

}

}

基于第二種:

@Component

public class TestSpring {

public void per() {

System.out.println("time work");

}

}

注意:第二種實作不需要加入@Scheduled()注解

如果報以下異常

nested exception is java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice      
則需要引入com.springsource.org.aopalliance-1.0.0.jar      

繼續閱讀