一、什么是定时任务?

我们在项目中遇到的需求: 需要定时送异步请求。

二、怎么实现?

2.1  mvc中启用定时任务。

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"> <!--spring mvc的配置文件-->
<!--开启mvc的注解-->
<mvc:annotation-driven conversion-service="conversionService" >
<!--配置转换器 转换日期的格式。-->
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd"/>
</bean>
</property>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven> <!--配置日期转换器-->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.aaa.controller.DateConverter"/>
</set>
</property>
</bean> <mvc:default-servlet-handler/> <!--扫描器:扫描控制器的注解-->
<context:component-scan base-package="com.aaa.controller"/> <!--4.静态资源注解-->
<mvc:default-servlet-handler/>
<!--<mvc:resource mapping="/static/**" location="/static/"/>--> <!--3.视图解析器:进行视图解析
prefix+ 视图名字+suffix
-->
<!--5.文件上传的解析器 可以设置相关的属性。-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf-8"/>
<!--文件上传的大小:单位:字节-->
<property name="maxUploadSize" value="#{10*1024*1024}"/>
</bean> <!--&lt;!&ndash; 异常处理 1. 配置解析器 &ndash;&gt;-->
<!--<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">-->
<!--&lt;!&ndash;1.1默认的错误视图 发生异常时, 跳转到的页面&ndash;&gt;-->
<!--<property name="defaultErrorView" value="error"/>-->
<!--&lt;!&ndash;1.2 异常的属性 捕获到的错误信息。&ndash;&gt;-->
<!--<property name="exceptionAttribute" value="ex"/>--> <!--&lt;!&ndash;1.3exceptionMappings &ndash;&gt;-->
<!--<property name="exceptionMappings">-->
<!--<props>-->
<!--<prop key="异常类型1">-->
<!--error1-->
<!--</prop>-->
<!--<prop key="异常类型2">-->
<!--error2-->
<!--</prop>-->
<!--</props>-->
<!--</property>-->
<!--</bean>--> <!--6. 配置一个拦截器 -->
<mvc:interceptors>
<!--<mvc:interceptor>-->
<!--&lt;!&ndash; 拦截的路径 &ndash;&gt;-->
<!--<mvc:mapping path="/**"/>-->
<!--&lt;!&ndash; 配置拦截器的bean &ndash;&gt;-->
<!--&lt;!&ndash; 放行路径 &ndash;&gt;-->
<!--<mvc:exclude-mapping path="/user/login"/>-->
<!--<bean class="com.aaa.interceptors.MyIntercept"/>-->
<!--</mvc:interceptor>-->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.aaa.interceptors.Demo02"/>
</mvc:interceptor> </mvc:interceptors> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/> <!--视图前缀-->
<property name="suffix" value=".jsp"/> <!--视图后缀-->
</bean> <!--授权 -->
<aop:config ></aop:config> <!--启用定时任务。 导包 spring frame word. org/schema/task-->
<task:annotation-driven></task:annotation-driven> </beans>

2.2  控制层中创建SchController

package com.aaa.controller;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Controller; import java.text.SimpleDateFormat;
import java.util.Date; /*
* 定时任务? 需求:
1.定时发送异步请求
2.使用java计时器,自启动的servlet中,线程(Thread,Thread sleep) 使用 Schedule组件:
1.配置注解。 1.1 mvc中 启用定时任务。
1.2 导包 【spring frame word. org/schema/task】
1.3 创建控制器 加入 schedule的注解。
1.4 秒分时日月年。 / 代表 每的意思 “0/5 * * * * *” 就是每五秒执行一次。
*
* */
@Controller
public class SchController {
@Scheduled(cron = "0/3 * * * * ?")
public void task1(){
//日期格式的转换。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = new Date();
String nowTime = sdf.format(date);
System.out.println("每三秒执行一次, 你好世界!"+nowTime);
}
}

2.3 属性说明。

2.4 字符含义

2.5 演示

最新文章

  1. bootstrap点滴
  2. PHP 判断是否为Get/Post/Ajax提交
  3. R语言randomForest包实现随机森林——iris数据集和kyphosis数据集
  4. javascript进阶-原型prototype
  5. CF Playing with Paper
  6. Android用悬浮按钮实现翻页效果
  7. 让 zend studio 识别 Phalcon语法并且进行语法提示
  8. UVA 12166 Equilibrium Mobile
  9. scrapy中response.body 与 response.text区别
  10. SQLserver 获取当前时间
  11. 快速沃尔什变换(FWT)及K进制异或卷积&amp;快速子集变换(FST)讲解
  12. docker安装并修改Nginx镜像
  13. golang rpc介绍
  14. Android逆向基础----Android Dalvik虚拟机
  15. Winform文件上传
  16. js 中格式化时间
  17. SQL Server 子查询错误:No column name was specified for column 2 of &#39;a&#39; error (转载)
  18. struts2框架之自定义拦截器和配置
  19. button按钮被输入法顶起来,遮盖了input输入框
  20. 感谢Thunder

热门文章

  1. 【LeetCode】528. Random Pick with Weight 解题报告(Python)
  2. 魔法串(hud4545)
  3. codeforce-424C. Magic Formulas(数学)
  4. Hexo添加Live2D看板娘+模型预览
  5. 解决ubuntu突然无法联网问题
  6. [数学]高数部分-Part VII 微分方程
  7. 在pycharm中创建py文件——创建你的第一个项目
  8. 快过年了,如何使用 AutoJS 自动化快速抢微信红包!
  9. 详解nohup /dev/null 2&gt;&amp;1 含义的使用
  10. Visual Studio 设置背景图片主题(所有版本设置方法)