看了尚学堂的动态代理的视频,讲的挺好的,自己现在的理解是AOP中被代理的对象是已经写好的代码,即通过配置文件就可以,以java反射的机制来调用被代理对象,需要处理的操作在invoke方法里添加,自己要对被代理的对象添加自己的业务逻辑在invoke方法里面加,比如在代理执行前或后增加日志记录或者是添加时间等。。。
动态代理无非就是在原来静态代理的基础上加上java的反射机制,这样就可以灵活的调用代理,这个代理可以不用预先编译,代理工厂内部方法就是实现反射等一系列的操作,这个在视频中讲的也很清楚。spring视频中第20个教程。
spring中的aop其实原来的那个东西叫被代理对象,日志拦截器应该叫代理对象的操作部分,由spring自己生成一个动态代理,将日志拦截器等额外的操作加到要操作的被代理对象中才生成一个代理对象,也就是说日志拦截器严格讲不能叫代理,代理是spring生成结合的。
spring aop的好处不仅仅时表面上看来的面向“面”的编程,即一个代理可以加到多个被代理对象的方法中,还有一个面向:"切",所谓面向切,就是说被代理对象不用添加侵入性的代码就可以,即被代理对象不用写任何代理,完全有spring来处理。
本文探讨了Spring AOP的工作原理及动态代理的应用。详细解释了如何利用Java反射机制实现动态代理,使得无需修改原有代码即可添加如日志记录等功能。此外,还介绍了Spring如何生成动态代理对象并将额外操作加入到目标方法中。
971

被折叠的 条评论
为什么被折叠?



