代理模式
静态代理:代理商
重点:代理类
//1.业务类
2.代理类
- 测试类
调用代理类,实现真实业务方法
Jdk动态代理(必要接口)
手写代码
动态代理类
Public class JdkTest{
@Test
Public void jdktest(){
- 创建真实业务类对象
final Subject subject =new RealSubject();
- 创建jdk代理对象
Subject subjectProxy =(Subject) Proxy.newProxyInstance(
subject.getClass().getClassLoder() , subject.getClass().getInstance() ,
new InvocationHandler() {
@override
Public Object invoke(Object proxy , Method method , Object [] args)
throws Throwable{
System.out.println(“前置增强”);
Object invoke=method.invoke(subject , args);
System.out.println(“后置增强”);
Return.invoke;
}
})
CGLib动态代理(不需要接口)