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());
?
?
?