首页 > 编程语言 > 详细

spring 动态代理

时间:2019-04-29 11:11:59      阅读:124      评论:0      收藏:0      [点我收藏+]
突然想到AOP,就简单回忆一下动态代理。
1.什么是动态代理?
  假如有个用户有增删该查4个方法,如果要对用户操作后进行日志记录,可能会有人说直接在增删改查后做日志记录就行。
  一旦我想在用户操作之前加一个权限验证方法,那每个调用方法之前得再加一个权限验证方法,这样的工作量则是巨大的。
  解决方案:将对象增删改查方法交给代理去执行,代理在执行方法前后可以做日志和权限控制。

  代理:本来应该由自己做的事情,由别人去做
  动态代理:在程序运行过程中生成代理对象,由该代理对象去完成自己要去做的事情。
  应用:
    1.事务管理,执行某个方法前开启事务,执行后关闭。
    2.日志
    3.权限
    4.方法执行效率
spring 的动态代理就是AOP的实现原理,因此理解动态代理非常重要。如下记录一种简单的动态代理demo

详情请参考:https://www.cnblogs.com/techyc/p/3455950.html

public class LogHandler implements InvocationHandler {

private Object target;

public Object createProxy(Object targetObject){
this.target = targetObject;
return Proxy.newProxyInstance(
targetObject.getClass().getClassLoader(),
targetObject.getClass().getInterfaces(), this);
}

@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
return method.invoke(target, args);
}
}

spring 动态代理

原文:https://www.cnblogs.com/crazygentleman/p/10789081.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!