Public Interface Animalinterface { publicvoid Cry ();}
Public class Implements Animalinterface { publicvoid Cry () { // TODO auto-generated method Stub System.out.println ("Crying");} }
Public classMycglibImplementsMethodinterceptor {PrivateObject proxied; Privatemycglib (Object proxied) { This. proxied =proxied; } Public StaticObject GetProxy (object proxied) {mycglib cglib=NewMycglib (proxied); Enhancer Enhancer=Newenhancer (); Enhancer.setsuperclass (Proxied.getclass ()); Enhancer.setcallback (Cglib); returnenhancer.create (); } PublicObject Intercept (Object obj, Method method, object[] args, methodproxy proxy)throwsthrowable {Object ret; System.out.println ("Before Method Invoke"); RET=Method.invoke (proxied, args); System.out.println ("After Method Invoke"); returnret; }}
Public class Test { publicstaticvoid main (string[] args) { = (Animalimpl ) Mycglib.getproxy (new Animalimpl ()); Animal.cry (); }}
Cglib Dynamic agent (import Cglib-nodep-2.1_3.jar required)