静态代理
步骤一:创建抽象主题(接口)

步骤二:真实业务代码

步骤三:测试



JDK代理
步骤一:创建抽象主题(接口)

步骤二:真实业务代码

步骤三:测试


CGLIB代理
步骤一:代码层

步骤二:测试
public class ServiceCglib {
public static void main(String[] args) {
//步骤一:目标对象
final Cglib cglib=new Cglib();
//步骤二:生成代理
Enhancer enhancer=new Enhancer();
//步骤三:指定需要代理的目标对象木模板
enhancer.setSuperclass(cglib.getClass());
//步骤四:实现增强的处理操作
enhancer.setCallback(new MethodInterceptor() {
/**
*
* @param o 目标对象
* @param method 目标方法
* @param objects 目标方法的参数
* @param methodProxy 代理目标对象的方法
* @return
* @throws Throwable
*/
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
System.out.println("后置增强===========");
Object invoke = methodProxy.invoke(cglib, objects);
System.out.println("后置增强==========="); return invoke; } });
//最后一步:创建代理 Cglib o = (Cglib)enhancer.create(); o.Some(); } }
浙公网安备 33010602011771号