最佳实践:使用Spring AOP对异常进行统一处理(2)

时间:2025-07-10

有必要使用一个统一的异常处理机制 来进行某些异常处理的统一决策。比如对异常进行统一的日志记录,对散落在各处的某类异常进行统一处理等。

2. 解决办法

这里以Java平台分层架构为例,因为是Flex直接调用Java,没有常见的Action控制层。Service层是Java最顶级一层。使用Spring AOP对serivce层抛出的异常进行拦截,记录所有未处理的异常日志,并将所有未处理异常转换成统一自定义的系统异常,以便Flex客户端能够处理。下面的代码举例说明了如何使用Spring AOP将异常处理从正常的逻辑中分离出来,使得异常处理逻辑和正常的业务逻辑做到完全解耦。不同项目对于异常处理的要求不同,在具体项目中需要对异常处理代码根据项目需要进行修改,加以完善。

AOP为Aspect Oriented Programming的缩写,意为:面向方法编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。Spring AOP使用的是运行期动态代理方式实现切面编程(关于AOP概念和Spring AOP的实现原理请大家查阅相关资料)。

下面的例子有两个类来实现对异常的统一处理。

com.grgbanking.platform.core.exception.handler.ExceptionLogger //记录异常日志

com.grgbanking.platform.core.exception.handler.ExceptionMessageTransfer //转换成自定义系统异常 然后通过spring的xml配置文件的配置将以上两个类的异常处理逻辑在运行时动态织入到正常的代码执行逻辑流程。

spring配置文件中 切面的相关配置:

<!-- 记录异常日志的处理类 -->

<bean id = "exceptionLog" class = "com.grgbanking.platform.core.exception.handler.ExceptionLogger">

<property name = "noCatchedExceptions">

<set>

<value>ernameNotFoundException</value

</set>

</property>

</bean>

<!-- 未处理的异常转换成系统异常,供客户端错误提示用的处理类 -->

<bean id = " exceptionTransfer"

最佳实践:使用Spring AOP对异常进行统一处理(2).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219