没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
代理模式(Proxy Pattern)
代理模式是项目中常用的一种设计模式。提供了间接访问目标对象的一种方
式;即通过代理对象访问目标对象。
这样做的好处是,可以在不改变原有目标对象的基础上,对目标对象增加额外
的扩展功能。
代理模式又分为静态代理、jdk 动态代理、cglib 动态代理三种实现方式。
三种实现方式各有优点,以及适用的场景:
� 静态代理:代理类必须非常明确,所以无法做到通用,但是效率也是最高的
� jdk 动态代理:必须基于接口代理,有一定局限性;动态生成字节码文件,可以
用于通用业务(性能日志等)
� cglig 动态代理:也是动态生成字节码文件,生成的代理类继承了目标对象
� spring aop 默认代理策略是:如果目标对象实现了接口,则使用 jdk 动态代
理,否则使用 cglib 代理
� jdk8 之后,jdk 动态代理效率要高于 cglib 代理
1)静态代理
被代理对象与代理对象需要实现相同的接口或者是继承相同父类,因此要定义
一个接口或抽象类。
/**代理接口*/
public interface IHello {
String hi(String key);
}
/**代理接口实现类*/
public class HelloImpl implements IHello {
@Override
public String hi(String key) {
String str = "hello:" + key;
System.out.println("HelloImpl! " + str);
return str;
}
}
/**静态代理类*/
public class HelloStaticProxy implements IHello {
private IHello hello;
public HelloStaticProxy(IHello hello) {
this.hello = hello;
}
@Override
public String hi(String key) {
资源评论
烈日下的奔跑
- 粉丝: 1067
- 资源: 232
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功