/* * 接口类 */ public interface Person { void say(); } /* * 接口实现类 */ public class Man implements Person { private String word; public Man(String word){ this.word = word; } public Man(){ } public void say(){ System.out.println("Man Can Say " + word); } } public class ManCGLIBProxy { public Object bind(Object target){ Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(target.getClass()); enhancer.setCallback(new MethodInterceptor() { @Override public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable { System.out.println("CGLIB Proxy Design"); return method.invoke(target, objects); } }); return enhancer.create(); } } /** * CGLIB动态代理 */ public class ProxyDesign_3 { public static void main(String[] args) { Man man = new Man("Hello"); Person p = (Person)new ManCGLIBProxy().bind(man); p.say(); } }