使用java的spring定時執行任務

流程:

1.配置web.xml中spring的核心控制器

2.在spring的xml文件中注入定時器,並關聯你的邏輯層

3.設置需要執行的時間策略.



第一步:

	<!-- 加載Spring容器配置 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- 設置Spring容器加載所有的配置文件的路徑 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:config/spring-*.xml</param-value>
	</context-param>

	<!-- 配置SpringMVC核心控制器 -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 配置初始配置化文件,前面contextConfigLocation看情況二選一 -->  
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath*:config/spring-mvc.xml</param-value>
		</init-param>
		<!-- 啓動加載一次 -->  
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!--爲DispatcherServlet建立映射 -->
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<!-- 此處可以可以配置成*.do,對應struts的後綴習慣 -->
		<url-pattern>/</url-pattern>
	</servlet-mapping>

	<!-- 防止Spring內存溢出監聽器 -->
	<listener>
		<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
	</listener>

第二步:

    <!-- 定時加載的目標類 -->
    <bean id="mytask" class="com.qs.timer.myQuarzt" />
    <!-- 配置定時器詳情 -->
    <bean id="mytaskDitail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    	<property name="targetObject" ref="mytask" />
    	<property name="targetMethod" value="doit" />
    </bean>
    <!-- 定義時間間隔觸發器 -->
    <bean id="timeTigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    	<property name="mytaskDetail" ref="mytaskDitail" />
    	<property name="cronExpression" value="10 0 0 * * ?" />
    </bean>
    <!-- 啓動定時器 -->
    <bean id="startJob" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    	<property name="triggers">
    		<list>
    			<ref bean="timeTigger" />
    		</list>
    	</property>
    </bean>


目前代碼設置的自動執行任務的時間是每天的0點0分10秒


第三步:

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.annotation.Resource;

import org.quartz.JobExecutionException;

import com.qs.service.sportService;

public class myQuarzt {
	
	@Resource
	private xxService xxservice;
	
	public void doit()throws JobExecutionException{
		System.setProperty("user.timezone","GMT+8");
		System.out.println("動態時間:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
		//執行數據庫刪除冗餘數據操作
		int flag = this.xxservice.delExpirationDate();
	}

}

最後執行mybatis.xml執行sql語句成功刪除數據


DELETE from table1 where substring(theday, 4)<curdate()          theday時間格式爲   週二,2017-10-24   所以要使用截取字符串函數


以上就是spring定時器的簡單使用示例.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章