AOP异常捕获

本文介绍了如何使用Spring框架中的AOP特性来实现对Service层方法的拦截,通过配置XML文件和编写拦截器类来捕获并处理异常,有效降低业务逻辑间的耦合度。

第一次加入博客园,开始将所遇到的东西写出来,不仅日后自己能看,也希望能帮助到其他人,嘿嘿!

AOP:面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 AOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面(方面)编程。

对于AOP编程,网上有很多介绍可以去看。

关于spring aop方式拦截service层的方法。

1、在spring-config.xml里配置相关的aop设置。

 1 <!--设置service层的拦截器 bean-->
 2  <bean id="logAspect" class="com.log.util.LogInterceptor" ></bean
 3 
 4 <!--采用spring aop方式拦截service层的方法-->
 5 <aop:config proxy-target-class="false">
 6    <aop:pointcut id="pointcut-except" expression="execution(* com..service..*.*(..))" />
 7    <aop:advisor advice-ref="texAdvice" pointcut-ref="pointcut-except" order="9" />
 8    <aop:aspect id="exceptAspect" ref="logAspect"  order="3" >
 9     <aop:after-throwing prointcut-ref="pointcut-except" method="doThrowing"   throwing="ex" />
10    </aop:aspect>
11 <aop:config>
12    

2、添加拦截器bean里的doThrowing方法。

//捕获异常的方法
public void doThrowing(JoinPoint pjp,Throwable ex){
    
    String classname = pjp.getTarget().getClass().getSimpleName();//出错类名
    String methodname = pjp.getSignature().getName();//出错方法名
    String  exname = ex.getClass().getName();//异常名称
    String  message = ex.getMessage();//异常信息

}    
View Code

 即可在Service层捕获异常后,到拦截器的doThrowing()方法做处理,这里可以添加表将异常信息记录到表中。

3、测试

添加Service层,在其实现类中添加测试代码,运行后,即可捕获到java.lang.NumberFormatException的异常。

public void test(){
   String num = null;
   int num1 = Integer.parseInt(num);
}

 

转载于:https://www.cnblogs.com/sierrajuan2015/p/4813087.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值