🛫更多ssm知识见SSM_面向CRUD编程专栏
🚕本博客总结自黑马程序员的ssm框架视频
🚒博主对于该知识尚在学习阶段
🚄如果发现存在问题请毫不吝啬的指出
🚀🚀扎哇太枣糕的博客主页🚀🚀
目录
1 Spring AOP
AOP(Aspect Oriented Programming)意思是面向切面编程,是通过预编译的方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP(面向对象编程)的延续,是函数式编程的一种衍生范型,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑个部分之间的耦合性降低,提高程序的可重用性,同时提高了开发的效率。
AOP可以在程序运行期间,在不修改源码的情况下对方法进行功能的增强。它的优势就是可以减少重复代码,提高开发效率,并且便于维护。
底层实现
AOP的底层通过Spring提供的动态代理技术实现,在运行期间,Spring通过动态代理技术动态的生成代理对象,代理对象方法执行时进行增强功能的介入,再去调用目标对象的方法,从而完成功能的增强。
相关名词概念
- Target(目标对象):也就是被代理类对象
- Proxy(代理):一个类被AOP增强后return的对象就是代理类对象
- JoinPoint(连接点):每个被拦截到的方法就是一个连接点,这里点指的是方法,因为spring只支持方法类型的连接点
- Pointcut(切入点):需要被增强的每个方法就是一个切入点
- Advice(增强):用于定义功能增强方法
- Aspect(切面):切入点加增强就是切面
- Weaving(织入):将切入点的方法进行增强的过程就被称为织入,spring采用动态代理织入,而AspectJ采用编译器织入和类装载期织入。
常用的两种动态代理技术
- JDK代理:基于接口的动态代理技术,有接口时使用
- cglib代理:基于父类的动态代理技术,无接口时使用

JDK代理
第一步:创建一个公共接口
第二步:创建一个被代理类实现公共接口
第三步:创建一个功能增强类
第四步:测试类,利用反射创建代理类调用增强方法
测试结果:
cglib代理
第一步:导入相应的依赖jar包
由下图可知,cglib的包已经被封装到spring-core中它又被封装在spring-context中,故只需要导入spring-context的依赖就可以使用cglib







最低0.47元/天 解锁文章
8602





