本文主要是介绍IMOOC个人笔记 传统SpringAOP开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
AOP的概述
•AOP 的底层实现
•Spring 的传统AOP
–不带切入点的切面
–带有切入点的切面
•Spring 的传统AOP的自动代理
–基于Bean名称的自动代理
–基于切面信息的自动代理
什么是AOP
•AOP Aspect Oriented Programing 面向切面编程
•AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存)
Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码。
AOP的底层实现:JDK的动态代理
不使用接口的业务类,无法使用JDK动态代理
AOP的底层实现:CGLIB的动态代理 生成一个类去继承目标类
采用非常底层字节码技术,而可以为一个类创建子类,解决无接口代理问题
Spring AOP增强类型
Spring AOP切面类型
实现:
运行结果:
配置代理的属性:
带有切入点的切面 PointcutAdvisor切点切面:
案例: RegexpMethodPointcutAdvisor
缺点:假如说有100个 DAO需要增强 那么需要配置100个ProxyFactoryBean
下面将讲到 自动创建代理
Spring的传统AOP的自动代理的方式:
BeanNameAutoProxyCreator 举例:基于bean名称自动代理方式
缺点:需要对所有类所有方法产生代理 如果想对某些类某些方法进行代理 则无法使用
DefaultAdvisorAutoProxyCreator举例: 切面自动代理
配置环绕代理案例
以上为传统AOP开发==================================================
基于AspectJ的AOP开发:https://blog.csdn.net/weixin_41992953/article/details/86501215
这篇关于IMOOC个人笔记 传统SpringAOP开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!