`

springmvc基于aop异常处理

阅读更多

      写程序的时候一般都会通过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();
	}
}

 

 

 

分享到:
评论

相关推荐

    springMVC mybatis aop mysql 非注解 基于配置

    可以对日志集中操作 还有整个项目的异常操作 都是AOP实现非侵入代码 整个dmeo没有注解(除了override)都是基于配置的 包括数据库建库脚本 压缩包中有关于 txt详细介绍 每个类内部都有说明"&gt;springMVC mybatis aop ...

    SpringMVC-Aop demo

    在SpringMVC中,AOP主要应用于控制器层的方法,以便在请求处理之前或之后执行某些逻辑。在本示例中,"@Around"通知已被禁用,这意味着没有环绕通知(如性能跟踪或事务管理)会自动执行。如果需要启用这些功能,你...

    基于注解配置和使用spring AOP(spring mvc框架)

    在SpringMVCTest项目中,你可以创建一个简单的Spring MVC应用程序,定义一些带有业务逻辑的服务方法,然后创建相应的切面来实现日志记录、异常处理或事务管理。通过运行和测试这些方法,你可以直观地看到AOP在实际...

    Spring IOC AOP MVC 简单例子

    AOP(面向切面编程)和MVC(模型-视图-控制器)模式是Spring框架的重要组成部分,用于处理业务逻辑和展现层的分离。以下是对这些概念的详细解释: 1. Spring IOC(控制反转): 控制反转是指应用程序的控制权由...

    spring_aop_拦截实例

    Spring支持五种不同类型的的通知:前置通知(Before Advice)、后置通知(After Advice)、返回通知(After Returning Advice)、异常通知(After Throwing Advice)和环绕通知(Around Advice)。环绕通知是功能最...

    基于springmvc+mybatis+spring+maven+mysql的网上租车系统

    6. 异常处理:通过Spring的AOP机制,可以全局捕获和处理可能出现的异常,保证系统的稳定性。 总的来说,这个基于SpringMVC+MyBatis+Spring+Maven+MySQL的网上租车系统展示了现代Web应用的典型架构和开发流程。...

    Spring MVC AOP通过注解方式拦截Controller等实现日志管理demo版本2

    本项目"Spring MVC AOP通过注解方式拦截Controller等实现日志管理demo版本2"是基于注解的AOP实践,旨在帮助开发者了解如何利用AOP来记录应用程序中的关键操作日志。以下是关于这个主题的详细解释: 1. **Spring AOP...

    springmvc-机制(拦截器、aop、异常).docx

    Spring MVC提供了一套完善的异常处理机制,允许开发者自定义全局或特定控制器的异常处理器,通过@ControllerAdvice或@ExceptionHandler注解进行配置,以优雅地处理程序中抛出的异常,并返回合适的视图或响应。...

    SpringMVC完整使用教程

    SpringMVC 提供了统一的异常处理机制,可以通过 `@ExceptionHandler` 注解定义异常处理器,或配置 `HandlerExceptionResolver` 实现类来集中处理异常。 ### 第 7 章 数据验证 SpringMVC 结合 Hibernate Validator ...

    手写 springmvc

    通过这个实践,开发者可以深入学习SpringMVC的内部机制,了解请求处理、依赖注入、AOP(面向切面编程)以及异常处理等关键概念。 【标签】:“java spring springmvc 手写” 1. **Java**:作为主要的编程语言,...

    自定义的springMVC

    它是一个轻量级、基于模型-视图-控制器(MVC)设计模式的框架,为开发者提供了强大的功能,包括请求处理、数据绑定、异常处理和国际化支持。自定义SpringMVC意味着根据项目需求对SpringMVC进行配置和扩展,以满足...

    基于springmvc的J2EE平台

    8. **异常处理**: - 使用`@ExceptionHandler`注解定义全局或特定异常的处理逻辑。 9. **文件上传和下载**: - SpringMVC提供便捷的文件上传和下载支持,可以通过`MultipartFile`接口处理文件上传。 10. **国际...

    吴天雄--SpringMVC笔记.doc

    - 异常处理机制,可自定义全局和局部异常处理器。 - 自定义拦截器,实现预处理、后处理和链式拦截。 通过深入学习和实践 SpringMVC,开发者可以构建高效、可维护的 Web 应用程序,并充分利用 Spring 生态系统的...

    springmvc框架源码.zip

    9. **异常处理**:SpringMVC提供了一套优雅的异常处理机制,允许开发者定义全局和特定异常的处理策略。 10. **参数绑定**:自动将请求参数绑定到控制器方法的参数上,支持基本类型、复杂类型以及自定义类型转换器。...

    springMVC学习版源码

    15. **异常处理**:通过@ControllerAdvice和@ExceptionHandler注解,可以全局处理异常,提供统一的错误页面。 通过"SpringMVC学习版源码",初学者可以详细查看这些组件的实现,理解它们如何协同工作,从而加深对...

    SpringMVC精品资源--基于springMVC实现的解决方案系统.zip

    5. **异常处理**:SpringMVC允许自定义异常处理器,将业务异常转换为HTTP响应,提供了优雅的错误处理方式。 6. **RESTful风格**:SpringMVC支持创建RESTful API,通过URL映射、HTTP方法(GET、POST、PUT、DELETE等...

    基于SpringMvc+Spring图书信息管理系统

    此外,SpringMvc还提供了模型视图解析、数据绑定、异常处理等功能,使得开发过程更加简洁高效。 Spring框架是整个系统的核心,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。在本系统中,Spring用于管理...

    Java进阶之SpringMVC高级技术共7页.pdf.z

    8. **异常处理**:SpringMVC提供了全局异常处理机制,可以集中处理所有Controller抛出的异常。 9. **数据绑定和验证**:SpringMVC支持自动将请求参数绑定到Bean属性,并能进行数据验证。 10. **多文件上传**:通过...

    黑马程序员SpringMVC课堂笔记

    在该文件中,我们需要配置DispatcherServlet、ViewResolver、ModelAndView对象、Controller的bean定义,以及数据绑定和异常处理等关键组件。例如,我们通常会定义一个`&lt;mvc:annotation-driven/&gt;`元素以启用基于注解...

    基于springMVC的session拦截器

    在SpringMVC中,拦截器(Interceptor)是一种机制,可以对请求和响应进行预处理和后处理,类似于AOP(面向切面编程)的概念,但更专注于Web层。本文将深入探讨如何基于SpringMVC实现一个session拦截器,以检查用户...

Global site tag (gtag.js) - Google Analytics