标签:生成 代理类 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需要导入包
标签:生成 代理类 png 动态 作用 spring asi 耦合性 load
原文地址:https://www.cnblogs.com/vivian-xiaoyun/p/13670245.html