开题卡住了?9个AI论文软件深度测评,本科生毕业论文写作必备工具

核心内容摘要

飞书开放平台Python SDK解决方案:从架构解析到性能调优实战指南
P0926GH FBM224接线端子

PptxGenJS实战指南:从数据到演示的全流程自动化解决方案

文章目录配置类 SpringMvcInit配置类 MvcConfig全局异常处理器User实体类 (参数校验)UserController拦截器 MyInterceptor拦截器 MyInterceptor1配置类 SpringMvcInitpackagecom.cool.config;importorg.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;可以被 web项目加载会初始化ioc容器会设置 dispatcherServlet的地址publicclassSpringMvcInitextendsAbstractAnnotationConfigDispatcherServletInitializer{OverrideprotectedClass?[]getRootConfigClasses(){returnnewClass[0];}设置配置类OverrideprotectedClass?[]getServletConfigClasses(){returnnewClass[]{MvcConfig.class};}配置springmvc内部自带servlet的访问地址OverrideprotectedString[]getServletMappings(){returnnewString[]{/};}}配置类 MvcConfigpackagecom.cool.config;importcom.cool.interceptor.MyInterceptor;importcom.cool.interceptor.MyInterceptor1;importorg.springframework.context.annotation.ComponentScan;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;importorg.springframework.web.servlet.config.annotation.EnableWebMvc;importorg.springframework.web.servlet.config.annotation.InterceptorRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;EnableWebMvcConfigurationComponentScan({com.cool.controller,com.cool.error})publicclassMvcConfigimplementsWebMvcConfigurer{/* 通过configurer.enable()启用默认Servlet处理。

当请求无法匹配到Spring的控制器时会回退到Servlet容器的默认Servlet如Tomcat的DefaultServlet 主要用于处理静态资源如HTML、JS、CSS。

典型场景 配置后对 /static/** 的请求会先由Spring处理未匹配则交给容器默认Servlet */OverridepublicvoidconfigureDefaultServletHandling(DefaultServletHandlerConfigurerconfigurer){configurer.enable();}OverridepublicvoidaddInterceptors(InterceptorRegistryregistry){// 配置方案-1拦截全部请求registry.addInterceptor(newMyInterceptor());// 配置方案-2拦截指定的请求// *任意一层字符串**任意多层字符串registry.addInterceptor(newMyInterceptor()).addPathPatterns(/user/**);// 拦截 user/ 下的所有请求// 配置方案-3排除拦截// 拦截 user/ 下除了 /user/data1 之外的请求地址registry.addInterceptor(newMyInterceptor()).addPathPatterns(/user/**).excludePathPatterns(/user/data

;// 如果有多个拦截器执行流程是怎样的呢/* 先声明的优先级高优先级高的在外层 MyInterceptor.preHandle MyInterceptor

preHandle OrderController.data MyInterceptor

postHandle MyInterceptor.postHandle MyInterceptor

afterCompletion MyInterceptor.afterCompletion */registry.addInterceptor(newMyInterceptor());registry.addInterceptor(newMyInterceptor1());}}全局异常处理器全局异常处理器 GlobalException 使用了 RestControllerAdvice处理 ArithmeticException 和 Exception。

当 Controller 中的方法抛出这些异常时会被对应的 ExceptionHandler 方法捕获并处理。

packagecom.cool.error;importorg.springframework.web.bind.annotation.ExceptionHandler;importorg.springframework.web.bind.annotation.RestControllerAdvice;/** * 全局异常处理器 * * ControllerAdvice * 作用全局异常发生就会走此类的方法可以返回 逻辑视图、转发、重定向 * * RestControllerAdvice * 相当于 ControllerAdvice 和 ResponseBody 的组合 * 可以直接返回 json 字符串 * */RestControllerAdvicepublicclassGlobalException{/* 发生异常后 - ControllerAdvice注解的类型 - ExceptionHandler(指定的异常) - 执行handler 如果没有找到指定的异常就会找父类Exception */精准匹配算术异常ExceptionHandler(ArithmeticException.class)publicObjectArithmeticExceptionHandler(ArithmeticExceptione){// 自定义异常处理即可Stringmessagee.getMessage();System.out.println(ArithmeticExceptionHandlermessage);returnmessage;}兜底所有异常ExceptionHandler(Exception.class)publicObjectExceptionHandler(Exceptione){Stringmessagee.getMessage();System.out.println(ExceptionHandlermessage);returnmessage;}}User实体类 (参数校验)packagecom.cool.pojo;importjakarta.validation.constraints.Email;importjakarta.validation.constraints.Min;importjakarta.validation.constraints.NotBlank;importjakarta.validation.constraints.Past;importlombok.Data;importorg.hibernate.validator.constraints.Length;importjava.util.Date;/** * name不为null、不为空字符串 * 字符串不为空NotBlank * 集合不为空NotEmpty * 包装类型不为空NotNull * * password长度大于6 */DatapublicclassUser{NotBlankprivateStringname;Length(min6,max

privateStringpassword;Min(

privateintage;EmailprivateStringemail;PastprivateDatebirthday;}UserControllerpackagecom.cool.controller;importcom.cool.pojo.User;importorg.springframework.validation.BindingResult;importorg.springframework.validation.annotation.Validated;importorg.springframework.web.bind.annotation.*;importjava.util.HashMap;importjava.util.Map;RestControllerRequestMapping(user)publicclassUserController{/** * 步骤1实体类属性添加校验注解 * 步骤2handler(Validated 实体类对象){} * 细节 * param、json 校验注解都有效果 * 只不过json参数的话需要用 RequestBody 修饰形参哦 * * 这里有个天坑如果不符合校验规则会直接向前端抛出异常 * 解决办法 * handler(Validated 实体类对象, BindingResult request){} * 多加一个 BindingResult request 参数 * 此参数必须紧挨着 Validated 实体类对象否则此参数不管用 */PostMapping(register)publicObjectregister(ValidatedRequestBodyUseruser,BindingResultresult){System.out.println(user user);if(result.hasErrors()){// 有错误的话就不直接返回给前端了可以在这里自定义内容返回给前端MapdatanewHashMap();data.put(code,

;data.put(msg,参数校验异常);returndata;}returnuser;}GetMapping(data)publicStringdata(){// 这个方法做成空指针异常Stringnamenull;name.toString();// NullPointerException报错后就不会执行下面的代码了就会取异常处理那里returndata - ok;}GetMapping(data

publicStringdata1(){// 这个方法做成算数异常inti1/0;// ArithmeticException: / by zeroreturndata1 - ok;}}拦截器 MyInterceptorpackagecom.cool.interceptor;importjakarta.servlet.http.HttpServletRequest;importjakarta.servlet.http.HttpServletResponse;importorg.springframework.web.servlet.HandlerInterceptor;importorg.springframework.web.servlet.ModelAndView;/** * 声明好这个类之后 * 需要在 MvcConfig 类中注册上 */publicclassMyInterceptorimplementsHandlerInterceptor{/** * handler执行之前触发 * param request 请求对象 * param response 响应对象 * param handler 就是我们要调用的方法对象 * return true放行false拦截 * throws Exception */OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{System.out.println(request request,response response,handler handler);System.out.println(MyInterceptor.preHandle);returntrue;}/** * 当 handler 执行完毕后触发此方法没有拦截机制了 * 此方法只有在 preHandle方法 return true 的时候才会被执行 * param request * param response * param handler * param modelAndView 返回的视图和共享域的数据对象如果没有的话返回null * throws Exception * * 对 响应结果 的处理 * */OverridepublicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,ModelAndViewmodelAndView)throwsException{System.out.println(MyInterceptor.postHandle);}/** * 整体处理完毕后会触发这个方法 * param request * param response * param handler * param ex 如果 handler方法报错了这个参数就是异常对象 * throws Exception */OverridepublicvoidafterCompletion(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex)throwsException{System.out.println(MyInterceptor.afterCompletion);}}拦截器 MyInterceptor1packagecom.cool.interceptor;importjakarta.servlet.http.HttpServletRequest;importjakarta.servlet.http.HttpServletResponse;importorg.springframework.web.servlet.HandlerInterceptor;importorg.springframework.web.servlet.ModelAndView;/** * 声明好这个类之后 * 需要在 MvcConfig 类中注册上 */publicclassMyInterceptor1implementsHandlerInterceptor{/** * handler执行之前触发 * param request 请求对象 * param response 响应对象 * param handler 就是我们要调用的方法对象 * return true放行false拦截 * throws Exception */OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{System.out.println(MyInterceptor

preHandle);returntrue;}/** * 当 handler 执行完毕后触发此方法没有拦截机制了 * 此方法只有在 preHandle方法 return true 的时候才会被执行 * param request * param response * param handler * param modelAndView 返回的视图和共享域的数据对象如果没有的话返回null * throws Exception * * 对 响应结果 的处理 * */OverridepublicvoidpostHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,ModelAndViewmodelAndView)throwsException{System.out.println(MyInterceptor

postHandle);}/** * 整体处理完毕后会触发这个方法 * param request * param response * param handler * param ex 如果 handler方法报错了这个参数就是异常对象 * throws Exception */OverridepublicvoidafterCompletion(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler,Exceptionex)throwsException{System.out.println(MyInterceptor

afterCompletion);}}

妈妈和女婿免费播放电视剧妈妈出轨-妈妈和女婿免费播放电视剧妈妈出轨应用

相关标签
YOLO26涨点改进| 全网独家创新ã€�特å¾�è��å�ˆæ”¹è¿›ç¯‡ | TGRS 2025顶刊| 引入MROD -YOLOçš„ MSIA多尺度迭代è�šå�ˆæ¨¡å�—,强化语义特å¾�之间交互,æ��å�‡å¤�æ�‚ç�¯å¢ƒä¸­å°�ç›®æ ‡æ£€æµ‹ï¼Œå¤šæ¨¡æ€�è��å�ˆ Qwen2.5-VL-7B-Instruct实战:网页截图转代码、物体检测轻松实现 Botty开源工具:解锁暗黑2重制版自动化刷图新可能 小白程序员必备:手把手教你用PyTorch构建Transformer大模型(收藏版) 为什么头部AIGC团队正在紧急迁移至Seedance 2.0?——双分支动态路由机制、低秩梯度冻结策略与训练稳定性提升3.7×实证分析 学术降重的“时空折叠术”:书匠策AI如何用语义引擎重构论文查重逻辑 基于天空星STM32F407的MQ-3酒精传感器驱动移植与浓度检测实战 训练好的大模型的每个触角上的qkv矩阵都是一样的?,那怎么自动对不同的句子输入,经过这个固定的qkv权重矩阵乘后,得到不同的后续的逻辑管道, 零基础玩转LobeChat:一键搭建私人ChatGPT,支持语音和文件上传 隧道能见度检测器:守护隧道安全的“火眼金睛” 5步搞定Hunyuan 1.8B部署:vLLM+Chainlit镜像免配置教程 跨境电商多账号运营的“管控力”:把风险、效率、利润同时抓住的四张表 如何解决文件分享跳转难题?3个方法让下载体验提升80% Mamba 模型:如何通过选择性状态空间突破长序列建模的瓶颈

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123