📚目录

  • ​​📚简介:​​
  • ​​💨进阶版​​
  • ​​🗺️未实现AOP效果​​
  • ​​🎢创建注解:​​
  • ​​💭创建注解切面​​
  • ​​🚀使用方式:​​
  • ​​🎉结束:​​

📚简介:

      需要对AOP有一点了解的情况下看进阶的内容才容易懂一些​​点击查看​​往期AOP内容,然后前一篇写的比较基础些通常在业务多变的情况下可能会有多个业务也需要设置相同的切面达到方法的增强,这个时候可能方法就不在同包下或者方法名称又不一致导致切面表达式​​execution​​​会不知道怎么写或者配置起来会更麻烦。
      那么我们可以试着用​​​注解的方式来设置切面​​,只需要在对应的方法上添加注解即可得到切面的增强。

项目包结构:

AOP注解方式进行增强接口_java

配置信息:

AOP注解方式进行增强接口_spring boot_02

启动服务:

AOP注解方式进行增强接口_AOP_03

💨进阶版

接下来通过项目来带大家理解注解AOP带来的便利
      现在我有个商品控制层调用接口后会修改商品信息,然后我现在要对接口增强在请求接口时我需要保存请求方发送的请求参数信息等。

🗺️未实现AOP效果

未实现AOP效果示例

我把请求参数也打印出来

AOP注解方式进行增强接口_java_04

使用软件调用接口:

AOP注解方式进行增强接口_方法参数_05


AOP注解方式进行增强接口_AOP_06


接下来按照需求完成请求接口获取请求参数信息等操作。

🎢创建注解:

创建注解:

AOP注解方式进行增强接口_java_07

元注解解释:
​​​@Target​​​({ ElementType.PARAMETER, ElementType.METHOD })//注解可以添加在哪个:ElementType.PARAMETER 可以添加到方法参数 ElementType.METHOD 可以添加到方法上
​​​@Retention​​(RetentionPolicy.RUNTIME)//注解的生命周期是在运行时

/**
* @Author itmei
* @Date 2022/12/19 14:56
* @description: 日志注解
* @Title: Log
* @Package com.itmei.springaopanno.annotation
*/
@Component
@Target({ ElementType.PARAMETER, ElementType.METHOD })//注解可以添加在哪个:ElementType.PARAMETER 可以添加到方法参数 ElementType.METHOD 可以添加到方法上
@Retention(RetentionPolicy.RUNTIME)//注解的生命周期是在运行时
@Documented//用于生成文档使用的
public @interface Log {

/**
* 记录的标题
* @return
*/
public String title() default "";

/**
* 是否开启记录
* @return
*/
public boolean isOpen() default true;
}

💭创建注解切面

AOP注解方式进行增强接口_方法参数_08


​@Before(value = "@annotation(log)")​​其中value中@annotation(log)填写的是注解,我们需要在方法参数里面添加这个注解这样切面就会以注解为准把添加了注解的方法进行增强了。

/**
* @Author itmei
* @Date 2022/12/19 15:10
* @description: 切面注解
* @Title: LogAspect
* @Package com.itmei.springaopanno.config
*/
@Component
@Aspect
@Order(1)
public class LogAspect {

@Before(value = "@annotation(log)")
public void logBefore(JoinPoint joinPoint, Log log){
System.out.println("----AOP增强接口----");
System.out.println("请求接口参数:"+Arrays.asList(joinPoint.getArgs()));
System.out.println("接口的标题是:"+log.title());
}
}

AOP注解方式进行增强接口_方法参数_09

🚀使用方式:

      使用方式就很简单了,在需要的接口中添加我们自己定义的注解即可

AOP注解方式进行增强接口_java_10

运行效果:

AOP注解方式进行增强接口_spring boot_11


      这个时候又有另外一个接口需要使用这个切面,也是只要在接口上添加即可。

AOP注解方式进行增强接口_AOP_12


      这样我们就可以对一种业务相同的情况下创建一个注解切面来对接口增强就非常省力了。

🎉结束:

到这里使用注解AOP方式就结束了,希望可以给你带来帮助。