:Spring-06 -AOP [面向切面编程] -配置异常通知的两种方式--AspectJ 方式 -Schema-based 方式
三.配置异常通知的步骤(AspectJ 方式)
1.只有当切点报异常才能触发异常通知
2.在spring 中有AspectJ 方式提供了异常通知的办法
3.实现步骤:
3.1新建类,在类写任意名称的方法
public class MyThrowAdvice {
public void myException(Exception e){
System.out.println("执行异常通知!"+e.getMessage());
}
}
3.2在spring 配置文件中配置
3.2.1<aop:aspect>的ref 属性表示:方法在哪个类中.
3.2.2<aop: xxxx/> 表示什么通知
3.2.3method: 当触发这个通知时,调用哪个方法
3.2.4throwing: 异常对象名,必须和通知中方法参数名相同(可以不在通知中声明异常对象)
<!--配置demo类,方便Spring启动时进行创建-->
<bean id="demo" class="com.test.demo"></bean>
<!--配置异常通知提醒: (AspectJ 方式)-->
<bean id="mythrow" class="com.advice.MyThrowAdvice"></bean>
<aop:config>
<aop:aspect ref="mythrow">
<aop:pointcut id="mypoint" expression="execution(* com.test.demo.demo1())"/>
<aop:after-throwing method="myException" pointcut-ref="mypoint" throwing="e"/>
</aop:aspect>
</aop:config>
四.异常通知(Schema-based 方式实现)
1.新建一个类myThrow实现throwsAdvice 接口
1.1必须自己写方法,且必须叫afterThrowing
1.2有两种参数方式
1.2.1必须是 1 个或 4 个 , Spring倒序检查机制!有多个重载时,逆序进行执行!
异常类型要与切点报的异常类型一致;
import org.springframework.aop.ThrowsAdvice;
public class myThrow implements ThrowsAdvice {
// public void afterThrowing(Method m, Object[] args, Object target, Exception ex) {
// System.out.print("执行异常通知");
// }
public void afterThrowing(Exception e) throws Throwable {
System.out.println("执行异常通过-schema-base 方式");
}
}
2.在ApplicationContext.xml 配置 :
<beans>
<bean id="demo" class="com.test.demo"/>
<bean id="mythrow" class="com.advice.myThrow"></bean>
<aop:config>
<aop:pointcut id="mypoint" expression="execution(* com.test.demo.demo1())"/>
<aop:advisor advice-ref="mythrow" pointcut-ref="mypoint"/>
</aop:config>
</beans>
:Spring-06 -AOP [面向切面编程] -配置异常通知的两种方式--AspectJ 方式 -Schema-based 方式的更多相关文章
- Spring:AOP面向切面编程
AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果. AOP是软件开发思想阶段性的产物,我们比较熟悉面向过程O ...
- Spring 08: AOP面向切面编程 + 手写AOP框架
核心解读 AOP:Aspect Oriented Programming,面向切面编程 核心1:将公共的,通用的,重复的代码单独开发,在需要时反织回去 核心2:面向接口编程,即设置接口类型的变量,传入 ...
- Spring框架 AOP面向切面编程(转)
一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...
- Spring的AOP面向切面编程
什么是AOP? 1.AOP概念介绍 所谓AOP,即Aspect orientied program,就是面向方面(切面)的编程. 功能: 让关注点代码与业务代码分离! 关注点: 重复代码就叫做关注点: ...
- spring:AOP面向切面编程02
参考: https://blog.csdn.net/jeffleo/article/details/54136904 一.AOP的核心概念AOP(Aspect Oriented Programming ...
- Spring注解 - AOP 面向切面编程
基本概念: AOP:Aspect Oriented Programming,即面向切面编程 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式 前置通知(@Before):在目标 ...
- Spring框架——AOP面向切面编程
简介 AOP练习 使用动态代理解决问题 Spring AOP 用AspectJ注解声明切面 前置后置通知 利用方法签名编写AspectJ切入点表达式 指定切面的优先级 基于XML的配置声明切面 Spr ...
- Spring之AOP(面向切面编程)_入门Demo
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程.AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可 ...
- 详解Spring框架AOP(面向切面编程)
最近在学习AOP,之前一直很不明白,什么是AOP?为什么要使用AOP,它有什么作用?学完之后有一点小小的感触和自己的理解,所以在这里呢就跟大家一起分享一下 AOP(Aspect-Oriented Pr ...
随机推荐
- linux : 各个发行版中修改python27默认编码为utf-8
该方法可解决robot报错:'ascii' codec can't encode character u'\xf1' in position 16: ordinal not in range(128 ...
- IIS中发布FTP支持断点续传
IIS10中发布FTP默认就是支持断点续传的.
- SpringBoot系列教程web篇之Get请求参数解析姿势汇总
一般在开发web应用的时候,如果提供http接口,最常见的http请求方式为GET/POST,我们知道这两种请求方式的一个显著区别是GET请求的参数在url中,而post请求可以不在url中:那么一个 ...
- Apache软件基金会核心项目Tomcat的那些事
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.今天就来为大家介绍一下关于T ...
- 从Asp .net到Asp core (第二篇)《Asp Core 的生命周期》
前面一篇文章简单回顾了Asp .net的生命周期,也简单提到了Asp .net与Asp Core 的区别,我们说Asp Core不在使用Asp.netRuntime,所以它也没有了web程序生命周期中 ...
- STM32中的几个时钟SysTick、FCLK、SYSCLK、HCLK
STM32参考手册中的时钟树: 关于时钟讲解,在时钟树中都可以看出来:下面是正点原子PPT中的插图,看起来比较清晰. 总结一下: 1. 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE. ...
- array_merge_recursive 的使用
作用:递归合并数组 场景:在平时开发中,我们可能遇到获取的数据是多个维度的数据,而我们只需要其中的一个. 代码如下: $project_id = 'project_id'; $arr1 = [ 'pr ...
- Java性能调优—— VisualVM工具基本使用及监控本地和远程JVM进程超详细使用教程
- AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersion 区别
AssemblyVersion: 几乎保留在.NET内部,AssemblyFileVersion: 就是Windows所见.如果您转到位于目录中的程序集的属性并切换到版本选项卡, 映射到“文件版本”A ...
- YARN-HA高可用集群搭建
YARN-HA配置 1. YARN-HA工作机制 1.1 官方文档:http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/ ...