码迷,mamicode.com
首页 > 其他好文 > 详细

20200914--AOP

时间:2020-09-18 01:36:39      阅读:33      评论:0      收藏:0      [点我收藏+]

标签:生成   代理类   png   动态   作用   spring   asi   耦合性   load   

了解spring AOP,需要了解代理模式,这是spring aop的底层

必问面试题【spring aop, spring mvc】

代理模式

1. 静态代理

角色分析:

抽象角色:一般会使用接口或抽象类来实现

真实角色:被代理的角色

代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作

客户:访问代理对象的人

技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 

好处:

1. 可以使真实角色的操作更加纯粹,不用去关注一些公共的业务

2. 公共业务交给了代理角色,实现了业务分工,耦合性降低

3. 公共业务发生扩展的时候,方便集中管理

缺点:一个真实角色,就会产生一个代理角色,如果真实角色很多,就会产生很多代理角色,代码量翻倍,开发效率会降低

1. 改动业务代码,在公司中是大忌

2. AOP的实现机制

不改变原有代码,横切进入开发

技术图片

 

 3. 动态代理

动态代理的底层:反射

动态代理和静态代理角色一样

动态代理的代理类是动态生成的,不是直接写好的

动态代理分为两大类:

1. 基于接口的动态代理--JDK的动态代理【我们使用】 

2. 基于类的动态代理 --cglib

java字节码实现,javasist---用的也挺多,不是基于tomcat服务器,是基于jboss服务器里

*****需要了解两个类:

InvocationHandler--调用处理程序,是个接口,反射包下,

Proxy--代理,提供了创建动态代理类和实例的静态方法

技术图片

 

 一个动态代理类代理的是一个接口,一般就是对应的一类业务

一个动态代理类可以代理多个类,只要是实现了同一个接口即可

4. AOP

技术图片

 

 AOP在spring中的作用:

提供声明式事务,允许用户自定义切面

技术图片

 

 4.1 使用aop需要导入包

技术图片

 

20200914--AOP

标签:生成   代理类   png   动态   作用   spring   asi   耦合性   load   

原文地址:https://www.cnblogs.com/vivian-xiaoyun/p/13670245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!