spring-9-AOP面向切面编程

1.动态代理

就是在原有的代码不变的情况下添加功能

1.1JDK动态代理

要求:目标对象必须实现其接口,这个是java设计上的要求,原理是反射

1.2CGLIB动态代理(了解)

这个是一个开源的项目,原理是继承,效率高于JDK代理
前者类不能是final

2.Aop:面向切面的编程,基于动态代理。

1.可以使用JDK、cglib两种代理方式

2.Aop就是动态代理的规范化,把代理的步骤方式,都写好了

3.让开发人员的用一种统一的代理方式,使用动态代理

3.Aop(Aspect Orient Programming)面向切面编程

1)Aspect 切面:给你的目标添加功能,就是切面

常见的切面功能有,日志,事务,统计信息,参数检查,权限验证

特点:,一般是非业务的的,独立使用

2)JoinPoint:连接点,连接业务方法和切面的位置。就是某类中的业务方法

3)Pointcut:切入点,指多个连接点方法的集合。多个方法

4)目标对象:给那个类的方法添加功能,这个类就是目标对象

5)Advice:通知,同时表示切面功能执行的时间

4.三个关键的要素:

说一个切面有三个关键的要素:
1)切面的功能代码,切面千什么
2)切面的执行位置,使用Pointcut表示切 面执行的位登
3)切面的执行时间,使用Advice表示时间, 在目标方法之前,还是目标方法之后。

动态代理
实现方式: jdk动态代理, 使用jdk中的Proxy,. Method, Invoca i tonHanderl创建代理对象.
jdk动态代理要求目标类必须实现接口
cglib动态代理:第三方的工具库,创建代理对象,原理是继承。通过继承目 标类,创建子类。
子类就是代理对象。要求 目标类不能是final的,
方法也不能是final的

动态代理的作用:
1)在目标类源代码不改变的情况下,增加功能。,
2)减少代码的重复
3)专注业务逻辑代码
4)解耦合,让你的业务功能和日志,事务非业务功能分离。

怎么理解面向切面编程?
1)需要在分析项目功能时,找出切面。
2)合理的安排切面的执行时间(在目标方法前,还是目标方法后)
3)合理的安全切面执行的位置,在哪个类,哪个方法增加增强功能

5. aop的实现

aop是一一个规范,是动态的-一个规范化,一个标准
aop的技术实现框架:

  1. spring: 1.spring在内 部实现了aop规范,能做aop的工作。
    2.spring主要在事务处理时使用aop.
    3.我们项目开发中很少使用spring的aop实现。因 为spring的aop比较笨重.

  2. aspectJ: -一个开源的专门做aop的框架。spring框 架中集成了aspectj框架,通过spring就能使用aspectj的功能。aspectJ框架实现aop有两种方式:

1.使用xm1的配置文件:配置全局事务|
2.使用注解,我们在项目中要做aop功能,一般都使用注解,aspectj有5个注解.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码浪人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值