CGLIB Sample
2016. 5. 12. 00:59 in 3. Implementation/Spring

It's very simple sample for CGLib Proxy being used by Spring.
1 2 3 4 5 6 7 8 9 | public static void main(String[] args) { Enhancer enhancer = new Enhancer(); // enhancer.setSuperclass(MemberServiceImpl.class); enhancer.setSuperclass(MemberService. class ); enhancer.setCallback( new MethodCallLogInterceptor()); Object obj = enhancer.create(); MemberService memberService = (MemberService)obj; memberService.regist( new Member()); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class MethodCallLogInterceptor implements MethodInterceptor { MemberService memberService = new MemberServiceImpl(); public Object intercept(Object object, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { System.out.println( "before " ); // Object returnValue = methodProxy.invokeSuper(memberService, args); Object returnValue = method.invoke(memberService, args); System.out.println( "after " ); return returnValue; } } |