手机版

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

时间:2025-07-12   来源:未知    
字号:

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

class = "com.grgbanking.platform.core.exception.handler.ExceptionMessageTransfer">

<property name = "noCatchedExceptions">

<set>

<value>com.grgbanking.platform.core.exception.SysException</value> <value>com.grgbanking.platform.core.exception.AppException</value> <value>com.grgbanking.platform.core.exception.PasswordOverdueException</value> <value>ernameNotFoundException</value>

</set>

</property>

</bean>

<aop:config proxy-target-class="true">

<!—配置切入点: 所有service类方法执行时

<aop:pointcut id="exPointcut1" expression="execution(* com.grgbanking..service.*.*(..))"/>

<!—配置记录异常日志切面-->

<aop:aspect ref="exceptionLog" order="3">

<!—配置抛出异常后通知,通知方法是log, ex是log方法中异常参数的名称--> <aop:after-throwing pointcut-ref="exPointcut1" method="log" throwing="ex"/>

</aop:aspect>

<!—配置异常转换切面,通知方法是handle, ex是handle方法中异常参数的名称-->

<aop:aspect ref=" exceptionTransfer " order="1">

<aop:after-throwing pointcut-ref="exPointcut1" method="handle" throwing="ex"/>

</aop:aspect>

</aop:config>

Spring AOP中具体实现拦截处理的类:

/**

* 拦截系统异常记录日志.

*

* @author yrliang

*

*/

public class ExceptionLogger {

private Logger logger = LoggerFactory.getLogger(this.getClass()); private Set<String> noCatchedExceptions = new HashSet<String>();

public Set<String> getNoCatchedExceptions() {

return noCatchedExceptions;

}

最佳实践:使用Spring AOP对异常进行统一处理(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)