Spring中aop详解

花生 可爱的博主

时间: 2021-04-18 阅读: 702 字数:1858

{}
AOP是面向切面编程。全称:`AspectOrientedProgramming`

目录

什么是AOP

AOP,全称为面向切面编程(Aspect-Oriented Programming),是一种在程序运行期间动态插入特定代码的方法。这种编程方式允许将额外的功能(如日志记录)与核心业务逻辑分开,提升代码的可维护性和可读性。

示例:计算器功能与日志记录

以下是一个简单的计算器接口,包含基本的数学运算方法:

public interface Calculate {
    int add(int num1, int num2);
    int mul(int num1, int num2);
    int div(int num1, int num2);
    int sub(int num1, int num2);
}

接下来是实现该接口的 Calculator 类,其中每个方法都会在执行前打印日志:

public class Calculator implements Calculate {
    public int add(int num1, int num2) {
        System.out.println("日记:【add】方法调用前。参数1是:" + num1 + ",参数2是:" + num2);
        return num1 + num2;
    }

    public int mul(int num1, int num2) {
        System.out.println("日记:【mul】方法调用前。参数1是:" + num1 + ",参数2是:" + num2);
        return num1 * num2;
    }

    public int div(int num1, int num2) {
        System.out.println("日记:【div】方法调用前。参数1是:" + num1 + ",参数2是:" + num2);
        return num1 / num2;
    }

    public int sub(int num1, int num2) {
        System.out.println("日记:【sub】方法调用前。参数1是:" + num1 + ",参数2是:" + num2);
        return num1 - num2;
    }
}

接下来是用于测试的代码:

public class CalculatorTest {
    public static void main(String[] args) {
        Calculate calculate = new Calculator();
        int result = calculate.add(1212, 1212);
        System.out.println("相加的结果:" + result);
        
        result = calculate.mul(1212, 1212);
        System.out.println("相乘的结果:" + result);
    }
}

在上述实现中,日志记录代码被直接嵌入到业务方法中,这导致业务逻辑与日志记录耦合在一起。若将来需要修改日志记录的实现,则必须在每个方法中手动更改,这会增加维护的复杂性。因此,这是一种不太理想的做法。

通过AOP,我们可以将日志记录逻辑与业务代码分离,使得代码更加清晰易维护。

本文章网址:https://www.sjxi.cn/detil/cb6de16571054d4abef42e8f4d7152a3
最新评论
当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复