阿里巴巴网站优化怎么做,简述网站开发主要步骤,巴顿品牌设计公司,天津seo选天津旗舰科技a历史文章#xff08;文章累计500#xff09;
《国内最全的Spring Boot系列之一》
《国内最全的Spring Boot系列之二》
《国内最全的Spring Boot系列之三》
《国内最全的Spring Boot系列之四》
《国内最全的Spring Boot系列之五》
《国内最全的Spring Boot系列之六》
《… 历史文章文章累计500
《国内最全的Spring Boot系列之一》
《国内最全的Spring Boot系列之二》
《国内最全的Spring Boot系列之三》
《国内最全的Spring Boot系列之四》
《国内最全的Spring Boot系列之五》
《国内最全的Spring Boot系列之六》
《国内最全的Spring Boot系列之七》
Transaction rolled back because it has been marked as - 第512篇
五音不全也浪漫521清华学霸为爱人写歌 - 第513篇
一文讲清楚SpringBoot项目打包jar后运行报错template might not exist - 第514篇
idea springboot woff/woff2/eot/ttf/svg等小图标不显示的问题 - 第515篇
Noisee AI中文站网页版 AI 音乐生成视频全新登场快来抢先体验——国内第一个登场的中文站来袭 - 516篇
Spring的SmartLifecycle可以没用过但没听过就不好了 - 第517篇 AI制作MV - 冰雪奇缘
以下视频来源于「未来AI视界」公众号 冰雪奇缘 冰雪奇缘2 导读
最近在开发一个AI音乐项目地址在下面的时候由于后端使用的是thymeleaf的模板引擎在报错的情况下在页面会直接展示错误信息这个就很不友好估计被老板发现了要扣我工资如果单页面处理这个就简单把异常捕捉处理下但这不是我的风格我想Spring Boot框架这么强大一定有通用的异常处理方式。
有粉丝会问博主你怎么使用vue进行前后端分离呢针对这个问题在后面的一篇文章有关《SpringBoot开发的AI导航站技术架构剖析》我会给出分析和原因。 项目体验地址
https://suno4.cn/#/?i8NCBS8_WXTT 前言
在使用Spring Boot开发项目的时候不管是否是前后端分离的项目只要是异常信息就要进行异常的统一处理尽量不要每个开发人员都处理一遍如果你的架构师让你自己搞定那么就打架构师小屁屁吧。
本文主要是针对404和500的错误信息进行讲解和分析。 一、SpringBoot默认的异常处理机制
SpringBoot 默认已经提供了一套处理异常的机制。一旦程序中出现了异常 SpringBoot 会向 /error 的 url 发送请求。在 SpringBoot 中提供了一个名为 BasicErrorController 的类来处理 /error 请求然后跳转到默认显示异常的页面来展示异常信息。 1.1 使用模板引擎
在使用 thymeleaf 等模板引擎时SpringBoot 会自动到 src/main/resources/templates/error/文件夹下寻找 404.html、500.html 的错误提示页面
错误提示页面的命名规则就是错误码.html如 404 是 404.html500 是 500.html 1.2 没有使用模板引擎
如果没有使用 thymeleaf 等模板引擎时SpringBoot 会到静态资源文件夹寻找 404.htm、500.html的错误提示页面命名同上。SpringBoot 中默认的静态资源路径有 4 个分别是
· classpath:/METAINF/resources/
· classpath:/resources/
· classpath:/static/
· classpath:/public/
优先级顺序为META-INF/resources resources static public以上 4 种路径创建 error 文件夹。 二、SpringBoot异常处理类ControllerAdvice
ControllerAdvice就是Controller增强版
ControllerAdvice主要用来处理全局数据一般搭配
ExceptionHandler、ModelAttribute、InitBinder使用
Controller Advice字面上意思是“控制器通知”Advice除了“劝告”、“意见”之外还有“通知”的意思。你可以将ModelAttribute和ExceptionHandler标记的方法提取出来放到一个类里并将加上ControllerAdvice这样所有的控制器都可以用了 ControllerAdvicepublic class GlobalExceptionHandler extends CommonGlobalExceptionHandler { ExceptionHandler(RuntimeException.class) public ModelAndView handleRuntimeException(RuntimeException e, HttpServletRequest request, HttpServletResponse response){ModelAndView modelAndView new ModelAndView(); modelAndView.setViewName(error/500); return modelAndView; }
}三、我的情况
以上是常规的一个解决思路当时我是怎么解决的呢 3.1 使用默认目录下的机制
由于使用了模板引擎的thymeleaf所以第一种想到的方式就是在templates/下创建error目录然后创建对应错误编码的.html文件比如404.html、500.html 3.2 失效了
随着代码越写越多突然有一天发现错误页面无法正常展示了。
经过我多年的排查原来是使用了ControllerAdvice进行了全局异常的处理导致页面默认的配置失效了。于是忽我在全局异常类进行了错误页面的配置如下 ExceptionHandler(RuntimeException.class)public ModelAndView handleRuntimeException(RuntimeException e, HttpServletRequest request, HttpServletResponse response){ ModelAndView modelAndView new ModelAndView(); modelAndView.setViewName(error/error); return modelAndView;}
当然这里可以获取到对应的错误码设置不同的错误页面。
在开发的过程中会碰到很多的问题要善于分析和总结问题这样子自己才能够成长。 历史文章文章累计500
《国内最全的Spring Boot系列之一》
《国内最全的Spring Boot系列之二》
《国内最全的Spring Boot系列之三》
《国内最全的Spring Boot系列之四》
《国内最全的Spring Boot系列之五》
《国内最全的Spring Boot系列之六》
《国内最全的Spring Boot系列之七》
如何让AI生成自己喜欢的歌曲-AI音乐创作的正确方式 - 第507篇
ES全文检索[ES系列] - 第508篇
ES 深度分页问题及针对不同需求下的解决方案[ES系列] - 第509篇
抖音主播/电商人员有福了利用Suno创作产品宣传让产品动起来-小米Su7 - 第510篇
Spring Boot整合ElasticSearch实战 - 第511篇
Transaction rolled back because it has been marked as - 第512篇
五音不全也浪漫521清华学霸为爱人写歌 - 第513篇
一文讲清楚SpringBoot项目打包jar后运行报错template might not exist - 第514篇
idea springboot woff/woff2/eot/ttf/svg等小图标不显示的问题 - 第515篇
Noisee AI中文站网页版 AI 音乐生成视频全新登场快来抢先体验——国内第一个登场的中文站来袭 - 516篇
Spring的SmartLifecycle可以没用过但没听过就不好了 - 第517篇