当前位置: 代码网 > it编程>编程语言>Java > springboot中如何引入AOP切面编程

springboot中如何引入AOP切面编程

2024年05月26日 Java 我要评论
在spring boot 3.0中引入aop的过程如下所示:1、首先确保已经添加了相关依赖可以通过maven或gradle来管理项目的依赖。对于使用maven构建的项目,需要将以下依赖添加到pom.x

在spring boot 3.0中引入aop的过程

如下所示:

1、首先确保已经添加了相关依赖

可以通过maven或gradle来管理项目的依赖。

对于使用maven构建的项目,需要将以下依赖添加到pom.xml文件中

<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-aop</artifactid>
</dependency>

2、创建切面类(aspect)

并定义切点(pointcut)、前置通知(before advice)等逻辑。

切面类应该被注解为@component,这样才能被自动扫描到。

在com.lingyi.mybatis.aop包下创建一个timecustomaspect.java的aop类,增强方法执行的行为。

package com.lingyi.mybatis.aop;
 
import org.aspectj.lang.proceedingjoinpoint;
import org.aspectj.lang.annotation.after;
import org.aspectj.lang.annotation.around;
import org.aspectj.lang.annotation.aspect;
import org.aspectj.lang.annotation.before;
import org.springframework.stereotype.component;
 
import java.util.arrays;
 
/**
 * 自定义aop切面
 */
 
@aspect
@component
public class timecustomaspect {
    @before("execution(* com.lingyi.mybatis.controller.*.*())") //包com.lingyi.mybatis.controller下的所有类和类中的方法都满足该aop的条件
    public void beforeadvice(){
        system.out.println("方法执行前.....");
    }
    @after("execution(* com.lingyi.mybatis.controller.*.*())")
    public  void afteradvice(){
        system.out.println("方法执行后.......");
    }
    @around("execution(* com.lingyi.mybatis.controller.*.*())")
    public object recordtimecustom(proceedingjoinpoint pjp) throws  throwable{
        long start = system.currenttimemillis();
        object result = pjp.proceed();
        long end = system.currenttimemillis();
 
        string classname = pjp.gettarget().getclass().getname();
        string method = pjp.getsignature().getname();
        string args = arrays.tostring(pjp.getargs());
        system.out.println("类:"+classname + ",方法:"+method +",参数:"+args +",执行耗时:"+ (end - start));
        return result;
    }
 
}
 

3、测试

登录swagger ui界面,访问controller层某个接口。下面已/person接口为例

http://127.0.0.1:8081/swagger-ui/index.html

经过测试,编写的aop切面编程程序生效,aop会根据切点表达式自动进行切面处理。

当符合条件的方法调用发生时,就会执行相应的通知逻辑。

4、精细化切入

为了更加精细化对指定方法进行切入,切面还可以针对某些注解进行切入,从而实现对指定方法进行增强。

在方法上添加@loggin注解

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com