spring/springMVC全跟踪(AOP面向切面编程)

本文详细介绍了Spring的面向切面编程(AOP)技术,包括AOP的基本概念、实现原理、代理机制、AOP术语以及手动代理与Spring自动代理的实现方式。还探讨了AspectJ的切入点表达式和通知类型,并提到了Spring提供的jdbcTemplate模板工具在数据库操作中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AOP面向切面编程
1,AOP介绍
什么是AOP?
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期"动态代理"实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。面向横向机制,取代了传统的纵向继承体系重复性代码
在这里插入图片描述
经典应用:性能监听,事务管理,安全检查,缓存,日志等。
springAOP在运行期间通过代理方式向目标类植入增强代码

AOP实现原理:
AOP底层将采用代理机制进行实现
常见组合,'①接口+实现类:spring采用jdk的动态代理Proxy;②spring采用cglib字节码增强

AOP术语(必须掌握):
在这里插入图片描述

2,代理
①手动代理
JDK动态代理—手动代理,对“装饰者”设计模式简化。使用前提,必须有接口。
目标类(接口+实现类)–>切面类(A:myAspect)–>工厂类,生成代理类(Proxy)–>测试(如下)
在这里插入图片描述
在这里插入图片描述

cglib字节码增强—手动代理
没有接口,只有实现类,采用字节码增强框架cglib,在运行时,创建目标类的子类,从而对目标类进行增强;

必须导入jar包:spring-core已经整合了核心(cglib)+依赖(asm),下面由spring-core-3.2.0.RELEASE.jar解压得到哦(这里说一点,jar包其实就相当于一个压缩包),因此我们只需要导入一一个spring-core核心包即可
实例:第一,和上面相差一个接口。第二,第四个参数,就相当于执行了第二遍
在这里插入图片描述
在这里插入图片描述

这里介绍前提知识
AOP联盟为通知A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值