AOP:基于xml配置
AOP 相关术语
Joinpoint( 连接点):
所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法,
因为 spring 只支持方法类型的 连接点。
Pointcut( 切入点):
所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义。
Advice( 通知/ 增强):
所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知。
通知的类型:前置通知,后置通知,异常通知,最终通知,环绕通知。
Introduction( 引介):
引介是一种特殊的通知在不修改类代码的前提下, Introduction 可以在运行期为类动态地添加一些方
法或 Field。
Target( 目标对象):
代理的目标对象。
Weaving( 织入):
是指把增强应用到目标对象来创建新的代理对象的过程。
spring 采用动态代理织入,而 AspectJ 采用编译期织入和类装载期织入。
Proxy (代理):
一个类被 AOP 织入增强后,就产生一个结果代理类。
Aspect( 切面):
是切入点和通知(引介)的结合。
切入点表达式(execution):匹配方法的执行(常用)
表达式语法:execution([修饰符] 返回值类型 包名.类名.方法名(参数))
写法说明:
全匹配方式:
public void com.itheima.service.impl.AccountServiceImpl.saveAccount(com.itheima.domain.Account)
访问修饰符可以省略
void com.itheima.service.impl.AccountServiceImpl.saveAccount(com.itheima.domain.Account)
返回值可以使用*号,表示任意返回值
* com.itheima.service.impl.AccountServiceImpl.saveAccount(com.itheima.domain.Account)
包名可以使用*号,表示任意包,但是有几级包,需要写几个*
* *.*.*.*.AccountServiceImpl.saveAccount(com.itheima.domain.Account)
使用..来表示当前包,及其子包
* com..AccountServiceImpl.saveAccount(com.itheima.domain.Account)
类名可以使用*号,表示任意类
* com..*.saveAccount(com.itheima.domain.Account)
方法名可以使用*号,表示任意方法
* com..*.*( com.itheima.domain.Account)
参数列表可以使用*,表示参数可以是任意数据类型,但是必须有参数
* com..*.*(*)
参数列表可以使用..表示有无参数均可,有参数可以是任意类型
* com..*.*(..)
全通配方式:
* *..*.*(..)
注:
通常情况下,我们都是对业务层的方法进行增强,所以切入点表达式都是切到业务层实现类。
execution(* com.itheima.service.impl.*.*(..))
配置Spring中的IOC
- (前置通知,后置通知,异常通知,最终通知) 与 环绕通知 只能使用一个
1、使用前置通知,后置通知,异常通知,最终通知

2、使用环绕通知
1、配置XML

2、aroundPringLog

智能推荐
Spring基于XML配置的AOP简单使用
1.什么是AOP: 简而言之, AOP是 我们把重复性的代码提取出来, 在需要的执行的时候, 使用动态代理的技术, 在不修改源码的情况下,进行功能增强 2.AOP术语 Joinpoint( 连接点):  ...
Spring AOP基于XML配置的切面
该篇博客主要阐述基于XML实现AOP切面 一、Spring的AOP配置元素 二、Demo Arithmetic.java(核心业务) LogginAspectJ.java (日志切面) SafetyAspectJ.java applicationContext.xml 测试类 结果 三、通知如何编织到业务中(《Spring IN ACTION》) 参考 《Spring IN ACTION》...
spring中基于XML的AOP配置步骤
spring中基于XML的AOP配置步骤 IAccountService.java AccountServiceImpl.java Logger.java bean.xml AOPTest.java...
基于配置xml的AOP入门实现步骤
1、先回忆一下基于注解的AOP步骤: 将目标类和切面类都加入到ioc容器中。@Component 告诉Spring哪个是切面类。@Aspect 在切面类中使用五个通知注解来配置切面中的这些通知方法都何时何地运行 开启基于注解的AOP功能 2、基于配置xml的AOP步骤: 注意下面的配置文件,xsi:schemaLocation的配置信息,不能缺少。 执行结果,可以看下每个切面方法的顺序。在LogU...
Spring AOP基于xml的配置以及使用
Spring AOP,也就是面向切面编程,是对于面向对象编程的一种补充,也是Spring框架的一项重要内容,核心思想是动态代理。 为什么需要AOP: 但我们在开发的过程中,我们慢慢会发现,有一些代码会不断重复出现,而且随着代码量增大,这一类代码会不断的重复出现,如果没有使用AOP,这一类的代码我们一般会采取...
猜你喜欢
Java spring基于XML的aop配置实现
1.依赖包 2.文件结构 3.接口类ISomeService 4.ISomeService的实现类SomeService 5.切入类MySystem 6.配置文件applicationContext.xml 7.测试类Test 8.输出结果...
傻瓜式Aop--基于xml配置前置通知
基于xml的aop配置(前置通知的使用方法) 建个maven项目 写个接口 和实现类 再写一个记录日志的类 建一个xml文件 约束去spring.IO搜xmlns:aop 拷贝 然后将实现类配置到xml里面 交给spring容器创建对象 把日志记录的类也配置进去 下面演示的还是一个前置通知使用 就是在保存用户之前调用日志方法 测试结果 可以看到记录日志在保存用户操作之前执行力...
raw&assets&sdcard读取mp3文件的方式
Raw方式 assets SDcard 首先需要添加 静态请求权限 动态请求 playMnt的播放方法 如何在模拟器中添加音乐 详细代码参见 点击跳转...
