读书人

Spring 札记 2(动态代理)

发布时间: 2012-10-08 19:54:56 作者: rapoo

Spring 笔记 2(动态代理)

一、动态代理的实现:

??? 1.实现InvocationHandler实现相应的方法

public class SecurityHandler implements InvocationHandler {private Object targetObject;public Object newProxy(Object targetObject) {this.targetObject = targetObject;return Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),   targetObject.getClass().getInterfaces(),   this);}public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {checkSecurity();Object ret = null;try {ret = method.invoke(this.targetObject, args);}catch(Exception e) {e.printStackTrace();throw new java.lang.RuntimeException(e);}return ret;}private void checkSecurity() {System.out.println("----------checkSecurity()---------------");}}

? 2.测试方法代码:

?

SecurityHandler handler = new SecurityHandler();UserManager userManager = (UserManager)handler.newProxy(new UserManagerImpl());

?

?

?

读书人网 >软件架构设计

热点推荐