news 2026/5/12 5:01:39

Spring定时任务与Spring MVC拦截器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring定时任务与Spring MVC拦截器

Spring定时任务与Spring MVC拦截器

文章目录

  • Spring定时任务与Spring MVC拦截器
    • 1.定时任务
      • 1.1定时任务`@Scheduled`
      • 1.2创建多线程定时任务
    • 2.拦截器
      • 2.1拦截器与过滤器的区别
      • 2.2SpringBoot中使用拦截器
        • 2.2.1实现`Handlerlnterceptor`接口

1.定时任务

Spring框架提供了强大的定时任务支持。通过使用@Scheduled注解,可以将一个方法标记为定时任务,并指定任务的执行时间规则。可以设置任务在固定的时间点执行,也可以设置任务在一定的时间间隔内重复执行。Spring的定时任务功能更加灵活,支持各种时间表达式,也可以配置多线程执行任务。

1.1定时任务@Scheduled

  • 创建StaticScheduleTask
  • cron= [秒] [分] [小时] [日] [月] [周] [年]
@Configuration// 1.配置类@EnableScheduling// 2.开启定时任务publicclassStaticScheduleTask{// 3.添加定时任务 每5秒执行一次@Scheduled(cron="0/5 * * * * ?")publicvoidconfigureTasks(){System.out.println("执行静态定时任务"+Thread.currentThread().getName());}}输出结果: 执行静态定时任务scheduling-1执行静态定时任务scheduling-1执行静态定时任务scheduling-1

1.2创建多线程定时任务

@Configuration // 1.配置类 @EnableScheduling // 2.开启定时任务 @EnableAsync // 开启多线程 public class StaticScheduleTask { // 3.添加定时任务 每5秒执行一次 @Scheduled(cron = "0/5 * * * * ?") @Async// 多线程执行 异步 public void configureTasks(){ System.out.println("执行静态定时任务"+Thread.currentThread().getName()); } } 输出结果: 执行静态定时任务task-1 执行静态定时任务task-2 执行静态定时任务task-3

2.拦截器

SpringMvc的处理拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理,开发可以自己定义一些拦截器来实现特定功能。

2.1拦截器与过滤器的区别

  • 过滤器

    • servlet规范中的一部分,任何java web程序都可以使用。

    • url-pattern中配置之后,可以对所要访问的资源进行拦截

  • 拦截器拦截器

    • SpringMvc框架自己的,只有使用了SpringMvc框架工程才能使用。
    • 拦截器只会拦截访问控制器的方法,如果访问的是jscssimage…是不会进行拦截的

2.2SpringBoot中使用拦截器

2.2.1实现Handlerlnterceptor接口
@ComponentpublicclassLoginInterceptorimplementsHandlerInterceptor{//preHandle是请求执行前执行的@OverridepublicbooleanpreHandle(HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse,Objecto)throwsException{System.out.println("进入拦截器");returntrue;}//postHandler是请求结束执行的 当preHandle返回true才会执行publicvoidpostHandle(HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse,Objecto,ModelAndViewmodelAndView){System.out.println("请求结束执行");}//afterCompletion是视图渲染完成后才执行的publicvoidafterCompletion(HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse,Objecto,Exceptione)throwsException{System.out.println("视图渲染完成后执行");}}

2.2.2实现WebMvcConfigurer接口配置拦截路径

  • 三种方式

    • 继承WebMvcConfigurerAdapter(spring5.0 以弃用,不推荐)
    • 实现WebMvcConfigurer(推荐)
    • 继承WebMvcConfigurationSupport会导致SpringBoot自动配置失效
  • 实现WebMvcConfigurer

    addlnterceptor:需要一个实现Handlerlnterceptor接口的拦截器实例

    addPathPaterns:用于设置拦截器的过滤路径规则

    addPathPatterns(“/**”)对所有请求都拦截

    excludePathPatterns:用于设置不需要拦截的过滤规则

    拦截器主要用途:进行用户登录状态的拦截,日志的拦截等

@ConfigurationpublicclassWebJavaBeanConfigurationimplementsWebMvcConfigurer{@AutowiredprivateLoginInterceptorloginInterceptor;publicvoidaddInterceptors(InterceptorRegistryregistry){registry.addInterceptor(loginInterceptor).addPathPatterns("/**").excludePathPatterns("/user/login").excludePathPatterns("/user/logout");}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 8:58:24

揭秘核反应堆控制Agent的7重安全验证机制:每一步都关乎百万人口安全

第一章:核反应堆控制Agent的安全逻辑演进随着核电系统自动化程度的提升,核反应堆控制Agent的安全逻辑经历了从静态规则引擎到动态自适应系统的深刻变革。早期控制系统依赖硬编码的安全阈值和预设响应流程,虽然具备高确定性,但难以…

作者头像 李华
网站建设 2026/5/11 0:24:26

如何在第一时间查到MCP量子认证成绩? insiders透露的3种高效方法

第一章:MCP量子认证成绩查询概述 MCP(Microsoft Certified Professional)量子认证是微软推出的面向量子计算领域的高级技术认证,旨在评估开发者在量子算法、Q#语言编程以及量子模拟器应用方面的专业能力。随着量子计算逐步进入工程…

作者头像 李华
网站建设 2026/5/11 1:23:38

原神自动化助手技术实现深度解析

原神自动化助手技术实现深度解析 【免费下载链接】genshin_impact_assistant 原神小助手 Genshin Assistant (CN/EN) | 自动战斗,秘境,领日常,半自动委托 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin_impact_assistant 原神自动化助手是一款基于Python开…

作者头像 李华
网站建设 2026/5/10 21:03:22

如何快速掌握ASTRA三维重建:从入门到精通的5个实战技巧

如何快速掌握ASTRA三维重建:从入门到精通的5个实战技巧 【免费下载链接】astra-toolbox ASTRA Tomography Toolbox 项目地址: https://gitcode.com/gh_mirrors/as/astra-toolbox 想要在医学影像、工业检测等领域实现高质量的三维重建吗?&#x1f…

作者头像 李华
网站建设 2026/5/11 1:24:26

27、深入了解ESX服务器配置与虚拟机创建

深入了解ESX服务器配置与虚拟机创建 1. ESX服务器配置相关要点 地图的使用 :地图是验证参与集群或VMotion网络的所有ESX服务器是否共享正确的数据存储和网络的有效方式。若缺乏此信息,VMotion会出现问题。此外,可直接与地图中的所有图标进行交互,以操作数据存储、网络或…

作者头像 李华
网站建设 2026/5/11 10:13:57

资源争抢频发?深度解析边缘Agent调度中的QoS保障机制

第一章:资源争抢频发?深度解析边缘Agent调度中的QoS保障机制在边缘计算环境中,多个Agent常因共享有限的计算、网络与存储资源而引发争抢,导致关键任务延迟或服务质量(QoS)下降。为应对这一挑战,…

作者头像 李华