1. 程式人生 > >spring 使用註解來排程定時任務

spring 使用註解來排程定時任務

1.在需要載入spring的配置檔案裡spring.xml / applicationContext.xml 新增

  1. xmlns:task="http://www.springframework.org/schema/task"
  2. xsi:schemaLocation="  
  3. http://www.springframework.org/schema/task          
  4. http://www.springframework.org/schema/task/spring-task-3.0.xsd  

2.配置自動排程的包和定時開關
  1. <!-- 自動排程需要掃描的包 -->
  2.     <
    context:component-scanbase-package="*"/>
  3.     <task:executorid="executor"pool-size="5"/>
  4.     <task:schedulerid="scheduler"pool-size="10"/>
  5.     <task:annotation-drivenexecutor="executor"scheduler="scheduler"/>

3.配置排程和註解排程
  1. <!-- 配置排程 需要在類名前新增 @Service -->
  2.     <!--    
  3.         <
    task:scheduled-tasks>
  4.             <task:scheduledref="demoTask"method="myTestWork"cron="0/10 * * * * ?"/>
  5.         </task:scheduled-tasks>
  6.     -->
  7.     <!-- 不通過配置排程,需要在類名前 @Component/@Service,在方法名 前新增@Scheduled(cron="0/5 * * * * ? ")-->

4.在web.xml配置裡新增啟動時要掃描的配置檔案和監聽

  1. <context-param
    >
  2.    <param-name>contextConfigLocation</param-name>
  3.    <param-value>/WEB-INF/applicationContext*.xml</param-value>
  4.  </context-param>
  5.  <listener>
  6.    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  7.  </listener>

5.新增排程的包

6.類測試

  1. @Service
  2. publicclass demo {  
  3.     @Scheduled(cron="0/5 * * * * ? ")  
  4.     publicvoid myTestWork(){  
  5.         System.out.println("ssss");  
  6.     }  
  7. }