Spring spring

Spring中文网站 > Spring Cloud > Spring切面是什么意思 Spring框架中连接点与切入点的区别
Spring切面是什么意思 Spring框架中连接点与切入点的区别
发布时间:2026/04/17 15:54:26

品牌型号:联想ThinkPad X1

系统:Windows10家庭版

软件版本:Spring 5.3.7

在学习Spring框架的时候,很多开发者都会在AOP这部分卡住,当我还是一个刚接触面向切面编程的新手时,在碰到切面、连接点、切入点之类的概念时也一样很晕。Spring的核心是IOC和AOP,能够将日志、权限校验、事务管理这些通用的横切逻辑和业务逻辑分离出来,我们只有把这些概念搞懂了,才能很好的利用AOP。接下来,我们就结合实际案例,给大家介绍Spring切面是什么意思,Spring框架中连接点与切入点的区别的相关内容。

一、Spring切面是什么意思

什么是AOP呢?AOP是面向对象编程OOP的升华,OOP是纵向对一个事物的抽象,而AOP是横向对不同事物的抽象,通过代理技术在运行期间对目标对象的方法进行增强,代理对象同名方法内执行原有逻辑的同时嵌入执行其他增强逻辑。

什么是AOP面向切面编程
图1:什么是AOP面向切面编程

说到Spring的切面,我们就不得不去学习一下AOP的七大核心概念。

Spring AOP的相关概念
图2:Spring AOP的相关概念

什么是advice通知?其实就是要增强的逻辑代码;而切点,就是指对目标对象中哪些方法进行增强,两个组合起来,就是切面。我们的业务代码是纵向的,而切面是横向抽取的通用逻辑,AOP就是横向抽取通用功能,不修改业务代码,所以Spring的切面可以理解为就是横向通用功能的封装体。

xml中配置织入
图3:xml中配置织入

二、Spring框架中连接点与切入点的区别

在学习Spring AOP的七大核心概念的时候,连接点和切入点让人很是头疼,连接点和切入点到底有什么区别呢?

连接点,我们可以理解为是可以被增强的方法,这里我在idea中创建一个UserServiceImpl这个类,类中有show1和show2方法,我们看下是不是可以对这个类的这两个方法去做增强?既然可以,那这个类的show1和show2这两个方法就是连接点。

Spring AOP的连接点
图4:Spring AOP的连接点

切点是指实际我们做增强的方法,例如我这会要对show1方法做增强,不对show2方法做增强,那么show1就是切点,而show2不是。在xml中我们可以配置切点表达式去配置要对哪些类的哪些方法进行通知增强。这里顺便扩展下,在配置切点表达式的时候,execution中访问修饰符是可以省略不写的,并且,返回值类型、某一级包名、类名、方法名都可以用星号去表示,包名和类名之间可以使用单个点去表示这个包下面的类,如果使用两个点表示这个包及子包下的类,参数列表中可以使用两个点去表示任意参数。

切点表达式
图5:切点表达式

这会相信大家应该已经明白了Spring中连接点和切入点的区别,可以说切入点是连接点的子集,举个不太恰当的例子就是连接点相当于丰满的理想,想要这个想要那个,但是实际上,现实很骨感,最后只做成了其中一部分,这就是切入点。

以上就是Spring切面是什么意思,Spring框架中连接点与切入点的区别的全部内容了。在Spring中,增强代码和切入点组成了Spring的切面,OOP是纵向抽取,AOP是横向抽取,而切面就是横向通用功能的封装体。切入点是指实际增强的方法,与之对应的是连接点,是指所有可以增强的方法。

读者也访问过这里:
180 1563 6924