品牌型号:联想ThinkPad X1
系统:Windows10家庭版
软件版本:Spring 5.3.7
很多开发者在学习Spring框架的时候,都会被AOP相关的问题困扰过,我也不例外,明明知道Spring的AOP能够在实现日志记录、事务控制、权限校验等常见业务功能的时候不用重复编写代码,但是却不知道它到底是怎么做到在不修改业务代码的前提下,就能对方法进行增强。如果这一点没有弄清楚,那么在后面接触注解开发的时候,更是容易一头雾水了,项目中经常能看到@Aspect、@Pointcut这类注解,知道和AOP有关,但是却不清楚每个注解的具体使用,每次想用注解简化AOP开发的时候,总是记不住Spring AOP的注解有哪些。接下来,我们就来围绕着“Spring怎么实现AOP,Spring AOP的注解有哪些“来给大家好好讲解下。
一、Spring怎么实现AOP
Spring AOP可以让我们在不修改业务代码的前提下统一增强功能,很多新手程序员在刚开始学习Spring的时候,接触的都是传统的XML配置方式,我们就以XML方式为例来给大家讲讲Spring具体该怎么实现AOP。
1、我们需要在maven的pom.xml文件中导入AOP相关的依赖。

2、在业务代码中,先确定哪个是目标对象,哪个是连接点,例如,我这里有个Service类中的两个方法,一个是show1,一个是show2,这两个方法就是我们的连接点,而Service对象就是我们的目标对象,我们编写一个通知,通知中定义前置方法和后置方法。

3、将目标对象和通知都交给Spring去管理,然后在Spring的XML文件中配置切面织入就可以了。

二、Spring AOP的注解有哪些
刚刚我们介绍了XML配置方式去实现Spring的AOP,其实,Spring的AOP也提供了注解方式配置,我们可以用注解去替代之前的XML配置文件。我们来回忆下刚刚我们是怎么用XML配置AOP的,其实也就是目标类和通知类被Spring管理后,在Spring的XML配置文件中配置切面的织入。

在接触Spring的注解开发的时候,我们知道,开启注解扫描后,可以通过@Component注解将目标类和通知类交给Spring管理。

配置AOP其实主要就是配置通知类中的哪个方法对应的切点表达式是什么,我们可以使用@Aspect注解来配置切面,使用@Before或者@Around等注解来配置通知类型,在配置通知类型的时候,我们需要配置切点表达式才行,这样才能知道要对哪些方法做增强。

如果只是到这里,我们就启动项目,很可能并不会让这个通知生效,因为我们还需要配置AspectJ的自动代理,找到配置类ApplicationContextConfig在类上面使用@EnableAspectJAutoProxy注解,并将属性proxyTargetClass的值改为true。然后我们启动这个项目,就可以在控制台看到配置的通知已经生效了。

以上就是Spring怎么实现AOP,Spring AOP的注解有哪些的全部内容了。Spring实现AOP的方式有多种,可以是注解、也可以是XML,不管是注解还是XML,无非就是将连接点和通知交给Spring管理,并配置好切面就可以了,AOP的常用注解也很容易记,将bean交给Spring管理,可以使用@Component及其下面衍生的注解,然后找到通知中的要增强的方法,在方法上配置通知类型和切入点表达式,最后不要忘记要在配置类中启动自动代理。