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

Java 使用SpringBoot实现AOP(面向切面编程)

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

Java 使用SpringBoot实现AOP(面向切面编程)

1、什么是Aop?

在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

2、Aop常用在什么地方?

AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等

3、使用SpringBoot框架实现AOP.

(1) 新建一个SpringBoot项目

(2)ResultAop为需要增加的具体方法,test为需要被扩展的程序。下面为ResultAop相关代码。

@Aspect
@Configuration
public class ResultAop {
    @Pointcut(value="execution(* com.example.Controller..*.*(..))")

    public void brokerAspect(){

    }
    @Before("brokerAspect()")
    public void before(JoinPoint joinPoint){
        System.out.println("这是前置通知");
        System.out.println("正在执行的目标类是: " + joinPoint.getTarget());
        System.out.println("正在执行的目标方法是: " + joinPoint.getSignature().getName());
    }

    @After("brokerAspect()")
    public void after(JoinPoint joinPoint){
        System.out.println("这是后置通知");
        System.out.println("正在执行的目标类是: " + joinPoint.getTarget());
        System.out.println("正在执行的目标方法是: " + joinPoint.getSignature().getName());
    }

    @Around("brokerAspect()")
    public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("这是环绕通知");
        System.out.println("正在执行的目标类是: " + joinPoint.getTarget());
        System.out.println("正在执行的目标方法是: " + joinPoint.getSignature().getName());
        Object proceed = joinPoint.proceed();
        return proceed;
    }

}

(3)test类相关代码

@RestController
public class test {
    @RequestMapping("/test")
    public void test(){
        System.out.println("这是Controller里面的方法");
    }
}

(4)输出结果为:

 可以看出对Controller里面的方法做了具体增强。

 

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

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

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