当前位置: 首页 > news >正文

Spring Boot整合日期转换器(Converter)和拦截器(HandlerInterceptor)

添加日期转换器(Converter)

public class DataConverter implements Converter<String, Date> {@Overridepublic Date convert(String s) {try {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");return simpleDateFormat.parse(s);}catch (Exception e){e.printStackTrace();return null;}}
}

配置日期转换器(WebMvcConfigurer)

  • 说明

            WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式针对框架进行个性化定制,例如:拦截器,类型转化器等等。

  • 代码示例

@Component
public class SpringMVCConfig implements WebMvcConfigurer {//注册日期格式转换@Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverter(new DataConverter());}
}

添加拦截器(HandlerInterceptor)

public class LoginInterceptor implements HandlerInterceptor {/*** 在控制器方法调用前执行* 返回值为是否中断* true:表示继续执行(下一个拦截器或处理器)* false:则会中断后续的所有操作,所以我们需要使用response来继续响应后续请求*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("==============handler执行前调用interceptor================");//判断用户是否登录User userLogin = (User) request.getSession().getAttribute("userLogin");if (userLogin != null) {return true;//执行下一个interceptor 或 handler}response.sendRedirect("/login.jsp");return false;//不放行}/*** 在控制器方法调用后,解析视图前调用,我们可以对视图和模型做进一步渲染或修改* 可在modelAndView中加入数据,比如当前时间*/@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);}/*** 整个请求完成,即视图渲染结束后调用,这个时候可以做些资源清理工作,或日志记录*/@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {HandlerInterceptor.super.afterCompletion(request, response, handler, ex);}
}

配置拦截器(WebMvcConfigurer)

@Component
public class SpringMVCConfig implements WebMvcConfigurer {//日期格式转换@Overridepublic void addFormatters(FormatterRegistry registry) {registry.addConverter(new DataConverter());}//注册拦截器@Overridepublic void addInterceptors(InterceptorRegistry registry) {/** addPathPatterns():要拦截的内容* excludePathPatterns():要放行的内容* */registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/login").excludePathPatterns("/");}
}

相关文章:

Spring Boot整合日期转换器(Converter)和拦截器(HandlerInterceptor)

添加日期转换器&#xff08;Converter&#xff09; public class DataConverter implements Converter<String, Date> {Overridepublic Date convert(String s) {try {SimpleDateFormat simpleDateFormat new SimpleDateFormat("yyyy-MM-dd");return simpleD…...

100天精通Python(实用脚本篇)——第112天:图像处理批量给图片添加水印,防盗必备建议收藏!!!(附上脚本代码)

文章目录 专栏导读1. 图片设置水印的意义?2. 需求3. 实现效果4. 添加全屏水印4.1 单张图片添加全屏水印4.2 批量给多张图片添加全屏水印5. 添加指定位置水印5.1 模块介绍5.2 批量添加脚本实现专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零…...

SpringMVC(全局异常处理.动态接收Ajax请求)

1.全局异常处理 1 异常处理器 基于AOP 用户发起请求, SpringMVC接受请求, SpringMVC加载静态资源问题说明 请求过去了,但没有处理 规则说明:静态资源进入SpringMVC框架之后,没有找到要怎样处理静态资源的方法,所以他们就不解决,也就不显示 解决方法:SpringMVC基于Servlet处理…...

【FastAPI】P1 简单实现 a+b

目录 准备工作代码运行 说明&#xff1a;本文通过 FastAPI 实现返回两个参数 ab 的值&#xff1b; 准备工作 默认读者已准备完善 Python IDE工具以及包管理工具。 首先&#xff0c;需要安装 fastapi 和 uvicorn 库&#xff0c;如果没有请使用 pip 进行安装&#xff1a; pip…...

C#设计模式教程(4):单例模式

单例模式(Singleton Pattern)是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个访问它的全局访问点。在C#中实现单例模式通常有几种不同的方法,这里介绍几种典型的实现方式。 C# 单例模式的各种实现方式 1. 懒汉式(线程不安全) public class Singleton {p…...

常用的git diff命令用法汇总和示例

文章目录 1. 查看工作目录和暂存区的差异2. 查看暂存区和最后一次提交的差异3. 查看两个提交之间的差异4. 查看特定文件的更改5. 查看特定文件在两个提交之间的差异6. 查看分支之间的差异7. 查看某次提交的更改8. 限制diff输出的格式9. 查看一定时间范围内的更改 Git的diff命令…...

一键式Excel分词统计工具:如何轻松打包Python脚本为EXE

一键式Excel分词统计工具&#xff1a;如何轻松打包Python脚本为EXE 写在最前面需求分析直接用Python打包为什么大&#xff1f;为什么要使用conda环境&#xff1f; 将Python脚本打包为一个独立的应用程序1. 编写Python脚本&#xff1a;初步功能实现2. 初步图形用户界面&#xff…...

Windows系统字体尺寸学习

调用GetTextMetrics来获得字体尺寸信息, 函数返回设备描述表中当前选定的字体信息&#xff1b; 返回值到TEXTMETRIC类型的结构中&#xff1b; 返回字段值的单位取决于当前设备描述表映射方式&#xff1b;默认映射方式是MM_TEXT&#xff0c;值的单位是像素&#xff1b; 前7个字…...

SSH隧道技术

SSH隧道 简介 SSH隧道是一种通过SSH协议在两个网络节点之间建立安全通信的技术。它可以用于多种用途&#xff0c;包括加密和保护敏感数据传输、绕过防火墙限制、远程访问内部服务等。 应用&#xff1a; 端口转发&#xff1a;SSH隧道可以将本地端口转发到远程主机上&#xf…...

支付功能的实现

1.商户调用第三方支付服务的主要步骤流程&#xff1f; 1.1 表单跳转 前端点击提交支付&#xff0c;请求后端支付接口 支付接口通过阿里api生成表单信息返回给前端页面 同步回调&#xff0c;异步回调参数 请求参数&#xff1a;总金额&#xff0c;外部订单号 公共参数&#xff1…...

SpringMVC JSON数据处理见解6

6.JSON数据处理 6.1.添加json依赖 springmvc 默认使用jackson作为json类库,不需要修改applicationContext-servlet.xml任何配置&#xff0c;只需引入以下类库springmvc就可以处理json数据&#xff1a; <!--spring-json依赖--> <dependency><groupId>com.f…...

python 读写kafka

1. 安装pykafka pip install pykafka2. 生产者 from pykafka import KafkaClientdef get_kafka_producer(hosts, topics):client KafkaClient(hostshosts)print(client.topics)topic client.topics[topics]producer topic.get_producer()return producer 测试 hosts 19…...

VBA: 如何用VBA遍历文件夹(含子文件夹)里的所有文件

目录 0 原始文件 1 step1:遍历文件夹&#xff08;不包含子文件&#xff09;内的文件数 2 step2: 遍历文件夹内的所有子文件夹的名字 3 step3 遍历文件夹的&#xff08;含子文件&#xff09;内的所有文件 4 step4 遍历文件夹的&#xff08;含子文件&#xff09;内的所有文…...

又快又好! 基于Consistency Model的一步采样歌声转换模型CoMoSVC已开源

在2023年&#xff0c;AI虚拟歌手如AI孙燕姿等已经引起了广泛的关注&#xff0c;而大多数应用都是基于开源框架SoVITS。最近&#xff0c;香港科技大学和微软亚洲研究院推出了一种基于Consistency Model的歌声转换系统CoMoSVC&#xff0c;它在歌声转换速度上与基于Flow的SoVITS系…...

服务器——配置免密登录

一、生成本机的密钥文件 打开本机的终端&#xff0c;输入 ssh-keygen&#xff0c;默认一路点enter。 将生成的 id_rsa.pub 公钥文件&#xff0c;复制一份改一个名称&#xff0c;比如改名成 id_rsa_test.pub。 二、将生成的公钥文件发送到服务器对应账户的.ssh文件夹下 将改…...

GoZero微服务个人探索之路(三)Go-Zero官方rpc demo示例探究

官方网址&#xff1a;https://go-zero.dev/docs/tasks/cli/grpc-demo 项目结构 demo包 两个文件均为protoc-gen-go-grpc自动生成构成一个完整的 gRPC 服务的定义和实现 democlient包 demo.go goctl生成的客户端代码 Request 和 Response 别名&#xff1a; 定义了 Request 和…...

1月下半笔记(个人向)

最近才开始看d2l&#xff08;这种东西早该在两年前看的&#xff0c;拖到现在了&#xff09; 为了做项目还得学一手OpenGL&#xff08;被windows安装GLFW逼疯了&#xff09; 1.15 打完ICPC EC final回来&#xff0c;也许可以出一篇博客写下简单的题解。 对蛋白质相似空间子结…...

ChatGpt使用技巧

通用类技巧 角色扮演 比如让ChatGpt扮演500强营销专家 告诉ChatGpt你的身份。初学者、或是有一定能力、知识的学习者等 限制ChatGpt回答长度 100~200字之间 让ChatGpt一步一步思考 他会预测下一个单词&#xff0c;根据prompt进行生成 明确你的要求和目的 说清楚问题&#x…...

自动安装解压版mysql8的脚本

由于mysql 8的 MSI 安装包&#xff0c;自动把程序安装到了C盘&#xff0c;且没看到有可以更改安装位置的配置可以修改。 故自行写了一个脚本&#xff0c;用来安装mysql 8的压缩包。可以将 mysql 8 以及其 Data目录 安装到C盘以外的位置。第一次写 bat 脚本&#xff0c;希望各位…...

第二讲_HarmonyOS应用创建和运行

HarmonyOS应用创建和运行 1. 创建一个HarmonyOS应用2. 运行新项目2.1 创建本地模拟器2.2 启动本地模拟器2.3 在本地模拟器运行项目 1. 创建一个HarmonyOS应用 打开DevEco Studio&#xff0c;在欢迎页单击Create Project&#xff0c;创建一个新工程。 选择创建Application应用。…...

NetGen:高质量网格生成的科学计算解决方案

NetGen&#xff1a;高质量网格生成的科学计算解决方案 【免费下载链接】netgen netgen: 是一个自动的3D四面体网格生成器&#xff0c;适用于从构造实体几何&#xff08;CSG&#xff09;或STL文件格式的边界表示&#xff08;BRep&#xff09;生成网格。 项目地址: https://git…...

实战演练,用快马生成GitHub团队协作项目,掌握Issue管理和CI/CD集成

最近在团队协作开发时&#xff0c;发现很多新成员对GitHub的完整工作流不太熟悉。于是我用InsCode(快马)平台快速搭建了一个GitHub实战项目&#xff0c;模拟真实开发场景。这个项目特别适合想系统学习团队协作的小伙伴&#xff0c;下面分享我的实践过程&#xff1a; 项目初始化…...

Java 面试八股文(全网最全20w字)

一、Java 基础知识 1、Object 类相关方法 getClass 获取当前运行时对象的 Class 对象。hashCode 返回对象的 hash 码。clone 拷贝当前对象&#xff0c; 必须实现 Cloneable 接口。浅拷贝对基本类型进行值拷贝&#xff0c;对引用类型拷贝引用&#xff1b;深拷贝对基本类型进行…...

告别手动Dockerfile!io.fabric8插件如何用Maven配置自动生成镜像(附Spring Boot实战)

告别手动Dockerfile&#xff01;io.fabric8插件如何用Maven配置自动生成镜像&#xff08;附Spring Boot实战&#xff09; 在Java生态中&#xff0c;容器化部署已成为现代应用交付的标准方式。传统做法要求开发者同时维护Dockerfile和构建脚本&#xff0c;这种割裂的配置方式不仅…...

如何安全高效地管理Cookie:Get cookies.txt LOCALLY本地处理终极实践指南

如何安全高效地管理Cookie&#xff1a;Get cookies.txt LOCALLY本地处理终极实践指南 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在数字时代&a…...

用U8g2库玩转OLED:Arduino显示动态变量+自定义图标的5个实用技巧

用U8g2库玩转OLED&#xff1a;Arduino显示动态变量自定义图标的5个实用技巧 在嵌入式开发中&#xff0c;OLED显示屏因其高对比度、低功耗和紧凑尺寸成为物联网设备和交互式项目的首选。U8g2库作为Arduino平台上最强大的显示驱动库之一&#xff0c;其灵活性和功能丰富性远超基础…...

零基础玩转OpenClaw:借助GLM-4.7-Flash实现首个自动化脚本

零基础玩转OpenClaw&#xff1a;借助GLM-4.7-Flash实现首个自动化脚本 1. 为什么选择OpenClaw作为个人自动化助手 去年夏天&#xff0c;当我第三次因为忘记定时发送周报而被领导提醒时&#xff0c;终于下定决心寻找一个能24小时待命的数字助手。在尝试了各种RPA工具后&#x…...

告别丑陋代码块!用PyQt5+pygments实现Word代码高亮粘贴(附完整源码)

告别丑陋代码块&#xff01;用PyQt5pygments实现Word代码高亮粘贴&#xff08;附完整源码&#xff09; 在技术文档编写过程中&#xff0c;代码展示是不可或缺的部分。然而&#xff0c;直接将IDE中的代码复制到Word文档时&#xff0c;往往会丢失原有的高亮和格式&#xff0c;变成…...

基于ATP的10kV并联电容暂态过程仿真

基于ATP的10kV并联电容暂态过程仿真在电力系统中&#xff0c;10kV并联电容装置起着至关重要的作用&#xff0c;比如提高功率因数、改善电压质量等。然而&#xff0c;其暂态过程却较为复杂&#xff0c;需要深入研究。ATP&#xff08;Alternative Transients Program&#xff09;…...

NaViL-9B图文问答教程:支持中英双语提问的跨语言理解能力实测

NaViL-9B图文问答教程&#xff1a;支持中英双语提问的跨语言理解能力实测 1. 认识NaViL-9B NaViL-9B是一款原生多模态大语言模型&#xff0c;由专业研究机构开发。它最吸引人的特点是能够同时理解文字和图片内容&#xff0c;并且支持中文和英文两种语言的提问。想象一下&…...