写程序的时候一般都会通过try...catch...finally对异常进行处理,但是我们真的能在写程序的时候处理掉所有可能发生的异常吗? 以及发生异常的时候执行什么逻辑,返回什么提示信息,跳转到什么页面,这些都是要考虑到的。
前面章节介绍了基于@ControllerAdvice(加强的控制器)的异常处理
请参考 http://gsshijun.iteye.com/admin/blogs/2321980
下面介绍一些基于spring aop进行异常处理的方式:
1、添加pom
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
2、参考示例
/** * 异常拦截处理 * @author ThinkPad * */ @Aspect @Component public class ExceptionInterceptor { //拦截com.sjz.cnmtc.web.main包及其子包下面的所有类下的所有方法 @Pointcut("execution(* com.sjz.cnmtc.web.main..*.*(..))") private void myPointcut() { } @AfterThrowing(throwing="ex" , pointcut="myPointcut()") public void doRecoveryActions(Throwable ex){ System.out.println("目标方法中抛出的异常:" + ex); writeContent("目标方法中抛出的异常"); } /** * 将内容输出到浏览器 * * @param content 输出内容 */ private void writeContent(String content) { HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse(); // response.reset(); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Type", "text/plain;charset=UTF-8"); response.setHeader("icop-content-type", "exception"); PrintWriter writer = null; try { writer = response.getWriter(); } catch (IOException e) { e.printStackTrace(); } writer.print(content); writer.flush(); writer.close(); } }
相关推荐
可以对日志集中操作 还有整个项目的异常操作 都是AOP实现非侵入代码 整个dmeo没有注解(除了override)都是基于配置的 包括数据库建库脚本 压缩包中有关于 txt详细介绍 每个类内部都有说明">springMVC mybatis aop ...
在SpringMVC中,AOP主要应用于控制器层的方法,以便在请求处理之前或之后执行某些逻辑。在本示例中,"@Around"通知已被禁用,这意味着没有环绕通知(如性能跟踪或事务管理)会自动执行。如果需要启用这些功能,你...
在SpringMVCTest项目中,你可以创建一个简单的Spring MVC应用程序,定义一些带有业务逻辑的服务方法,然后创建相应的切面来实现日志记录、异常处理或事务管理。通过运行和测试这些方法,你可以直观地看到AOP在实际...
AOP(面向切面编程)和MVC(模型-视图-控制器)模式是Spring框架的重要组成部分,用于处理业务逻辑和展现层的分离。以下是对这些概念的详细解释: 1. Spring IOC(控制反转): 控制反转是指应用程序的控制权由...
Spring支持五种不同类型的的通知:前置通知(Before Advice)、后置通知(After Advice)、返回通知(After Returning Advice)、异常通知(After Throwing Advice)和环绕通知(Around Advice)。环绕通知是功能最...
6. 异常处理:通过Spring的AOP机制,可以全局捕获和处理可能出现的异常,保证系统的稳定性。 总的来说,这个基于SpringMVC+MyBatis+Spring+Maven+MySQL的网上租车系统展示了现代Web应用的典型架构和开发流程。...
本项目"Spring MVC AOP通过注解方式拦截Controller等实现日志管理demo版本2"是基于注解的AOP实践,旨在帮助开发者了解如何利用AOP来记录应用程序中的关键操作日志。以下是关于这个主题的详细解释: 1. **Spring AOP...
Spring MVC提供了一套完善的异常处理机制,允许开发者自定义全局或特定控制器的异常处理器,通过@ControllerAdvice或@ExceptionHandler注解进行配置,以优雅地处理程序中抛出的异常,并返回合适的视图或响应。...
SpringMVC 提供了统一的异常处理机制,可以通过 `@ExceptionHandler` 注解定义异常处理器,或配置 `HandlerExceptionResolver` 实现类来集中处理异常。 ### 第 7 章 数据验证 SpringMVC 结合 Hibernate Validator ...
通过这个实践,开发者可以深入学习SpringMVC的内部机制,了解请求处理、依赖注入、AOP(面向切面编程)以及异常处理等关键概念。 【标签】:“java spring springmvc 手写” 1. **Java**:作为主要的编程语言,...
它是一个轻量级、基于模型-视图-控制器(MVC)设计模式的框架,为开发者提供了强大的功能,包括请求处理、数据绑定、异常处理和国际化支持。自定义SpringMVC意味着根据项目需求对SpringMVC进行配置和扩展,以满足...
8. **异常处理**: - 使用`@ExceptionHandler`注解定义全局或特定异常的处理逻辑。 9. **文件上传和下载**: - SpringMVC提供便捷的文件上传和下载支持,可以通过`MultipartFile`接口处理文件上传。 10. **国际...
- 异常处理机制,可自定义全局和局部异常处理器。 - 自定义拦截器,实现预处理、后处理和链式拦截。 通过深入学习和实践 SpringMVC,开发者可以构建高效、可维护的 Web 应用程序,并充分利用 Spring 生态系统的...
9. **异常处理**:SpringMVC提供了一套优雅的异常处理机制,允许开发者定义全局和特定异常的处理策略。 10. **参数绑定**:自动将请求参数绑定到控制器方法的参数上,支持基本类型、复杂类型以及自定义类型转换器。...
15. **异常处理**:通过@ControllerAdvice和@ExceptionHandler注解,可以全局处理异常,提供统一的错误页面。 通过"SpringMVC学习版源码",初学者可以详细查看这些组件的实现,理解它们如何协同工作,从而加深对...
5. **异常处理**:SpringMVC允许自定义异常处理器,将业务异常转换为HTTP响应,提供了优雅的错误处理方式。 6. **RESTful风格**:SpringMVC支持创建RESTful API,通过URL映射、HTTP方法(GET、POST、PUT、DELETE等...
此外,SpringMvc还提供了模型视图解析、数据绑定、异常处理等功能,使得开发过程更加简洁高效。 Spring框架是整个系统的核心,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。在本系统中,Spring用于管理...
8. **异常处理**:SpringMVC提供了全局异常处理机制,可以集中处理所有Controller抛出的异常。 9. **数据绑定和验证**:SpringMVC支持自动将请求参数绑定到Bean属性,并能进行数据验证。 10. **多文件上传**:通过...
在该文件中,我们需要配置DispatcherServlet、ViewResolver、ModelAndView对象、Controller的bean定义,以及数据绑定和异常处理等关键组件。例如,我们通常会定义一个`<mvc:annotation-driven/>`元素以启用基于注解...
在SpringMVC中,拦截器(Interceptor)是一种机制,可以对请求和响应进行预处理和后处理,类似于AOP(面向切面编程)的概念,但更专注于Web层。本文将深入探讨如何基于SpringMVC实现一个session拦截器,以检查用户...