Java动态代理
来源:互联网 发布:新买ssd怎么装系统知乎 编辑:程序博客网 时间:2024/06/05 10:09
Java代理实现:
1. 静态代理;
2. 动态代理;
2.1:基于JDK动态代理;
2.2:基于CGLIB动态代理;
一、静态代理:
1. 必须有接口
2. 代理类只能用在定义好的一个接口里面
3. 如果有n个接口,写n个实现,n个代理类
4. 必须修改调用方
此代理一般很少使用。
代理类与被代理类公用接口,这也能是静态代理的实现关键,就是通过公用接口实现。具体看代码实现:
/* * 抽象主题角色 */public interface IEmpDao { void tent();}
要被代理的类,要被增强的类,实现公共接口
/** *真实主题角色 */public class EmpDao implements IEmpDao { @Override public void tent() { System.out.println("EmpDao.租房()"); }}
代理类,在此添加要增强的逻辑:
public class EmpDaoProxy implements IEmpDao { private IEmpDao empDao; //通过构造器将要被代理的类传入 public EmpDaoProxy(IEmpDao empDao){ this.empDao=empDao; }}
//实现公共接口方法,增强
@Overridepublic void tent() { System.out.println("看房"); //调用被代理的方法,前后添加增强逻辑 empDao.tent(); System.out.println("收钱");}
测试:
/** * 测试类 */public class StaticProxyTest { @Test public void testname() throws Exception { IEmpDao empDao=new EmpDao(); IEmpDao empDaoProxy=new EmpDaoProxy(empDao); empDaoProxy.tent(); }}
0 0
- Java 代理,动态代理
- [Java] Java 动态代理
- java代理及动态代理
- java代理模式--动态代理
- Java静态代理、动态代理
- Java 代理之 动态代理
- Java 代理与动态代理
- java静态代理,动态代理
- 代理模式&java动态代理
- Java代理与动态代理
- Java静态代理动态代理
- JAVA代理模式--动态代理
- java 代理和动态代理
- JAVA动态代理 代理模式
- Java动态代理--jdk代理
- Java动态代理--cglib代理
- Java 代理与动态代理
- java代理模式-动态代理
- java中try/catch性能和原理
- iOS7以上系统自定义UIAlertController
- 自定义搜索框的UI
- 关于JSP中文乱码问题解决方法
- 3.1 决策树(decision tree)算法
- Java动态代理
- 关于Cocoapods的安装,使用以及过程中遇到的问题(个人总结)
- PCB设计大讲堂:PCB Layout细则(二)
- Eclipse/IntelliJ/AndroidStudio快捷键与小技巧
- mysql SQL语句
- 电脑操作技巧
- PCB设计大讲堂:PCB Layout细则(一)
- TV支持上电直至进入android系统后都是关屏状态
- MySQL存储过程循环插入数据