1. 添加config 配置类
package org.fh.config; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.json.MappingJackson2JsonView; /** * 说明:错误异常拦截处理 * 作者:FH Admin * from fhadmin.cn */ @Configuration public class ExceptionConfiguration implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { ModelAndView mv = new ModelAndView(new MappingJackson2JsonView()); //返回json String exInfo = ex.toString().replaceAll("\n", "<br/>"); boolean status = exInfo.contains("Subject does not have permission"); if(status){ exInfo = "[没有此页面的访问权限]" + exInfo; }else { System.out.println("==============异常开始============="); ex.printStackTrace(); System.out.println("==============异常结束============="); } mv.addObject("exception", exInfo); mv.addObject("result", "exception"); return mv; } }
2. 在逻辑类的方法上抛出异常 throws Exception,比如
/**删除 * @param out * @throws Exception */ @RequestMapping(value="/delete") @RequiresPermissions("autograph:del") @ResponseBody public Object delete() throws Exception{ Map<String,String> map = new HashMap<String,String>(); String errInfo = "success"; //xxxx map.put("result", errInfo); //返回结果 return map; }
3. 前端页面接收异常结果
//发送 post 请求提交保存 $.ajax({ xhrFields: { withCredentials: true }, type: "POST", url: httpurl+'xxxx/delete', data: {tm:new Date().getTime()}, dataType:"json", success: function(data){ if("success" == data.result){ }else if ("exception" == data.result){ alert("模块异常"+data.exception);//显示异常 } } });
相关推荐
下面将详细讲解Spring Boot如何实现全局异常拦截,并结合给出的"spring-boot-01"文件,探讨相关知识点。 1. **Spring Boot基础知识** Spring Boot简化了Java Web应用的开发,通过内嵌Servlet容器(如Tomcat或Jetty...
- **统一异常处理:** 在全局范围内捕获并处理异常,提供友好的错误提示页面。 - **性能监控:** 统计请求处理时间,帮助优化系统性能。 5. **示例代码** 创建一个简单的拦截器: ```java public class ...
系统提供了全局异常拦截器、登录校验拦截器、Echarts展示借阅量等功能。通过该项目,开发者可以学习并实践SpringBoot2和Vue2技术的应用,为后续的Web开发奠定基础。系统界面友好,易于操作,适合用于各类智能图书...
这个项目涉及到多个关键的技术和概念,包括Java编程、SpringBoot框架、Maven依赖管理、拦截器、全局异常处理、数据库操作以及前端界面的开发,特别是Layui组件库的使用。 首先,SpringBoot是Spring框架的一个简化...
`ErrorController`的优势在于,即使在过滤器、切面或拦截器中抛出的异常,也能被正确捕获。 总结起来,Spring Boot提供的这两种异常处理方式各有优缺点。`@ControllerAdvice`和`@ExceptionHandler`注解适合处理特定...
接下来,为了全局处理这种自定义异常,我们可以创建一个@ControllerAdvice注解的类,它包含一个或多个@ExceptionHandler方法。这些方法会在出现指定异常时被调用,用来生成对应的响应。在这个例子中,`...
6. **ExceptionHandler(错误消息统一处理)**:在SpringBoot应用中,通过全局异常处理器(@ControllerAdvice + @ExceptionHandler)可以统一处理所有控制器层的异常,提供友好的错误提示,同时便于日志记录和问题...
在 "springboot-template-master" 项目中,我们可以看到这个模板集成了多个核心功能,包括 Redis 数据缓存、Swagger API 文档生成、AOP 日志记录、用户管理和权限控制、拦截器实现登录验证、全局异常处理以及 ...
2. **@ControllerAdvice**: 这个注解是Spring MVC的一个特性,用于标记一个类为控制器的全局顾问,它会拦截所有带有@RequestMapping、@GetMapping、@PostMapping等注解的方法抛出的异常。在类中定义一个异常处理方法...
1. **SpringBoot自定义异常处理**:SpringBoot提供了一种优雅的方式处理全局异常,可以创建一个继承自`AbstractErrorController`或实现`ErrorAttributes`接口的类,通过注册到Spring容器,可以统一捕获并处理应用...
5. 权限控制:使用Spring Security或自定义拦截器,实现对文章操作的权限控制,如只有登录用户才能发布文章,管理员才能删除文章等。 三、文章列表与详情 1. 文章列表:在ArticleController中,设计一个接口返回...
8. **异常处理**:在SpringBoot中配置全局异常处理器,统一处理可能出现的运行时异常,提供友好的错误提示。 9. **测试与部署**:编写单元测试,确保各个模块功能的正确性,然后打包成可执行的JAR或WAR文件,部署到...
10. **异常处理**: 自定义全局异常处理器,统一处理程序中的异常情况,提供友好的错误提示。 **部署与运行** 1. 配置数据库连接信息:修改配置文件中的数据库连接信息,确保与实际数据库匹配。 2. 启动应用:运行...
然而,如果你创建了一个继承自`WebMvcConfigurationSupport`的配置类,并且在这个类中添加了拦截器,可能会意外地覆盖了Spring Boot自动配置的`WebMvcAutoConfiguration`,其中包括日期格式化的配置。 为了解决这个...
- **异常处理**:全局异常处理器,统一处理程序中抛出的异常,提供友好的错误信息。 - **API文档**:可能使用Swagger来生成RESTful API的文档,方便前后端协作。 - **数据库连接**:通过JPA或MyBatis等持久层框架...
7. **异常处理**:在SpringBoot中,可以通过@ControllerAdvice和@ExceptionHandler注解实现全局的异常处理,统一返回友好的错误信息,提高用户体验。 8. **日志管理**:系统采用Logback或Log4j等日志框架,记录系统...
优雅集成i18n实现国际化信息返回是SpringBoot框架中一个重要的功能,它使得应用程序能够支持多语言环境,为全球用户提供更加友好的交互体验。在SpringBoot中,i18n(Internationalization)通常通过资源文件来实现,...
10. **拦截器**: 实现通用的请求拦截逻辑,如登录验证、性能监控等。 这些通用模块的存在,是为了提高代码复用性和减少重复工作,使得项目开发更加高效。开发者可以根据实际需求选择性地引入和扩展这些组件。
7. **异常处理**:配置全局的异常处理,捕获Shiro抛出的未授权和未认证异常,返回友好的提示信息。 通过以上步骤,我们就成功地将SpringBoot和Shiro整合在一起,实现了对Controller层的权限验证以及前端页面按钮的...
总之,SpringBoot+Vue的博客项目结合了两者的优势,既实现了高效稳定的后端服务,又提供了流畅友好的前端交互。通过不断学习和实践,开发者可以打造出功能强大且具有高度定制性的个人博客系统。