Java学习日记19(Spring的AOP的快速入门)

本文详细介绍了如何在Spring框架中通过XML和注解实现AOP,包括创建目标接口、目标类、切面类,配置织入关系,使用前置通知,并展示了基于XML和注解的切点表达式和通知类型配置。

AOP技术实现的内容:让Spring框架监控切入点方法的执行,一旦监控到切入点方法被运行,就使用代理机制,动态创建目标对象的代理对象,再根据绑定的通知类型,去完成对应的增强方法。

目录

一,基于XML的AOP开发

1,导入AOP相关坐标

2,创建目标接口和目标类(内部有切点)

3,创建切面类(内部有增强方法)

4,将目标类和切面类的对象创建权交给spring

5,在applicationContext.xml中配置织入关系

6,测试

二,基于注解的AOP开发

1,将目标类和切面类的对象创建权交给spring用注解的方式

2,在切面类中使用注解配置织入关系

3,在applicationContext.xml中配置组件扫描和AOP的自动代理

4,切点表达式的抽取


一,基于XML的AOP开发

1,导入AOP相关坐标

除了导入spring框架的坐标还要导入aspectjweaver这个坐标

2,创建目标接口和目标类(内部有切点)

切点就是save()方法

3,创建切面类(内部有增强方法)

4,将目标类和切面类的对象创建权交给spring

5,在applicationContext.xml中配置织入关系

(1)引入aop命名空间

 

(2)配置织入就是告诉那些方法(切点)需要那些增强(前置或后置等)

<aop:aspect  ref="myAspect" >:声明自定义的myAspect类是切面类

<aop:before method="before" pointcut="execution(public void com.itheima.aop.Target.save( ))"/>:对全包名下的Target类的sava()方法进行监控,如果启功就使用代理机制,动态创建目标对象的代理对象,再根据绑定的通知类型,这里绑定的类型是前置,对应的增强方法是myAspect类下的before方法。 

6,测试

(1)创建测试类

使用spring集成的junit测试Target中的save()方法

 

这里注入Tartget对象需要用接口去接,因为用的jdk动态代理

(2)运行

 

(3)切点表达式

 

返回值类型,包名,类名,方法名可以使用星号*代表任意。

包名与类名之间一个点.代表当前包下的类,两个点..表示当前包及其子包下的类

参数列表可以使用两个点..表示任意个数,任意类型的参数列表

例如:

execution(public void com.itheima.aop.Target.method())

这个com.itheima.aop包下的这个Target类下的这个method()方法,无返回值,无参

execution(public void com.itheima.aop.Target.*(..))

这个com.itheima.aop包下的这个Target类下的任意方法,无返回值,任意参数

execution(* com.itheima.aop.*.*(..))    常用

这个com.itheima.aop包下的任意类下的任意方法,任意返回值,任意参数

execution(* com.itheima.aop..*.*(..))

这个com.itheima.aop包下及其子包下的的任意类下的任意方法,任意返回值,任意参数

(4)通知的类型

 

配置

 

 

(5)切点表达式的抽取

 

二,基于注解的AOP开发

1,将目标类和切面类的对象创建权交给spring用注解的方式

目标类的注解

切面类的注解和标注当前类是一个切面类的注解

2,在切面类中使用注解配置织入关系

3,在applicationContext.xml中配置组件扫描和AOP的自动代理

4,切点表达式的抽取

配置一个方法加上@Pointcut注解,里面写切点表达式

调用方式有两种

(1)注解里写方法名()的字符串

(2)注解里写切面类名.方法名()的字符串

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值