栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring学习 AOP-面向切面编程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring学习 AOP-面向切面编程

        众所周知,spring有两大特性,IOC(控制反转),AOP(切面编程),其实AOP到底是什么,这个定义一直很模糊,在我看来,AOP是切了一个面,这个面放一些我们程序公用一些处理逻辑,比如日志输出,异常统一处理,达到解耦的效果,话不多说,直接上一个统一捕获异常的代码。

1.导入AOP依赖

我用的是Spring的aop


    org.springframework.boot
    spring-boot-starter-aop
    2.4.5

2.创建切面类

这个类有什么作用讷???它里面定义了切点,就是你想从哪里开始砍一刀,可以精确到方法哦。

@Aspect
@Component
public class TestAOP {

    @Pointcut(value = "execution(* com.xxx.aoptest.controller.*.*(..))")
    public void checkmethods() {
    }

    @Around(value = "checkmethods()")
    public Object sureaop(ProceedingJoinPoint joinPoint) {
        try {
            Object proceed = joinPoint.proceed();
            return proceed;
        } catch (Throwable throwable) {

            ResultDTO.inputMsg(joinPoint);

            return throwable;
        }
    }
}

@Pointcut中的值 就是你要切的点啦,注意注意注意!!!你切的那个面必须有层注解,不然切不到,比如切的是控制层或服务层,那么必须有注解哦!!!  execution语法百度一下就ok啦,

@Aroud表示增强处理

@Before

@After

可自行百度。

然后启动项目,当你切的面下的方法执行异常的时候,我们可以在catch中统一处理,比如打印出错的方法名等等。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号