spring aop做了什么

fiy 其他 26

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring AOP 是 Spring 框架中的一个模块,它提供了面向切面编程(Aspect-Oriented Programming)的支持。它主要做了以下几件事:

    1. 横切关注点的分离:Spring AOP 通过将横切关注点(如日志、事务管理、安全控制等)从业务逻辑中分离出来,以便于复用和维护。这样可以将不同系统层面上的代码聚集到一个地方,提高代码的模块化程度。

    2. 切面的定义和切点的选择:Spring AOP 允许开发者定义切面(Aspect)和切点(Pointcut),切面定义了横切关注点的具体操作逻辑,切点则用来选择哪些连接点(Join Point)会执行切面中的逻辑。切点可以使用表达式或者注解的方式进行定义,非常灵活。

    3. 通知的执行和控制:Spring AOP 提供了五种通知(Advice)类型,分别是前置通知(Before)、后置通知(After)、返回通知(AfterReturning)、异常通知(AfterThrowing)和环绕通知(Around),开发者可以根据业务需要选择适合的通知类型。Spring AOP 还可以通过切面的优先级来控制通知的执行顺序。

    4. 动态代理的生成与运行时织入:Spring AOP 基于动态代理技术来实现切面的织入,在运行时动态生成代理对象,并将切面逻辑织入到代理对象的方法调用中。这种方式称为运行时织入(Runtime Weaving),与编译时织入(Compile-Time Weaving)相对应。运行时织入的好处是不需要修改源代码,可以在运行时动态地为目标对象添加切面逻辑。

    总之,Spring AOP 在日常开发中可以用来解决一些横切关注点的问题,避免代码的重复冗余,提高系统的可维护性和可扩展性。同时,它还可以与其他 Spring 模块(如事务管理、安全控制等)进行整合,实现更全面的功能。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    Spring AOP 是 Spring 框架中的一个模块,它为开发者提供了一种面向切面编程(AOP)的方式。通过 Spring AOP,可以在程序运行时动态地将一些跨越多个类或模块的公共行为,例如事务管理、日志记录、性能统计等,从被调用的方法中分离出来,并能够在不修改原始代码的情况下进行配置和管理。

    下面是 Spring AOP 主要做的五个事情:

    1. 切面(Aspect)的定义与管理:Spring AOP 允许开发者将公共的横切关注点(如日志记录、性能统计等)定义为一个切面,并通过配置将其织入到目标对象的特定连接点上。开发者可以通过注解或 XML 配置文件来声明切面,并通过 Spring 框架提供的切面定义方式进行统一管理。

    2. 连接点(Join Point)的定位:连接点是在程序执行过程中能够插入横切逻辑的方法调用点。Spring AOP 使用切点表达式(Pointcut Expression)来定位到目标对象的连接点。开发者可以通过切点表达式,精确地选择需要织入切面逻辑的方法调用。

    3. 通知(Advice)的织入:通知是切面在特定连接点上执行的代码。Spring AOP 提供了五种类型的通知:前置通知(Before Advice)、后置通知(After Advice)、返回通知(After Returning Advice)、异常通知(After Throwing Advice)和环绕通知(Around Advice)。

    4. 代理(Proxy)的生成:通过动态代理,Spring AOP 在运行时生成目标对象的代理对象,并将切面逻辑织入到代理对象中。开发者可以通过 JDK 动态代理或 CGLIB 字节码生成技术,选择适合自己应用场景的代理方式。

    5. 切面执行顺序的控制:在将切面织入目标对象的过程中,开发者可以通过指定切面的执行顺序来控制多个切面的执行顺序。Spring AOP 使用 @Order 注解或通过实现 Ordered 接口来声明切面的执行顺序,并确保切面按照指定顺序执行。

    总结起来,Spring AOP 主要实现了面向切面编程的功能,通过将公共的横切关注点从业务代码中分离,实现了代码的解耦、重用和统一管理。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Spring AOP(面向切面编程)是Spring框架的一个重要组成部分,它通过在运行时动态地增加代码来实现与主要业务逻辑分离的横切关注点(cross-cutting concerns)的技术。Spring AOP主要是实现了在不修改原始业务逻辑代码的情况下,提供了一种在运行时将横切关注点与主要业务逻辑结合起来的方式。

    Spring AOP使用代理模式来实现它的机制。它主要通过代理对象将横切关注点织入到目标对象的方法中。具体来说,Spring AOP规定了五种通知类型(Advice),通过这些通知可以在目标对象的方法执行前后执行一些逻辑,包括前置通知、后置通知、返回通知、异常通知和环绕通知。

    下面是Spring AOP的主要步骤和操作流程:

    1. 配置Spring AOP环境:在Spring配置文件中添加AOP命名空间的声明,并配置AOP相关组件,如切面(Aspect)、通知(Advice)和切点(Pointcut)等。

    2. 定义切面:切面是横切关注点的抽象表示,它包含了通知和切点。通常使用注解或XML方式来定义切面。

    3. 定义通知:通知是在目标方法执行期间执行的代码。根据需要可以定义前置通知(Before)、后置通知(After)、返回通知(After-returning)、异常通知(After-throwing)和环绕通知(Around)等。

    4. 定义切点:切点用于匹配连接点(Join Point)。连接点可以是目标方法的执行、异常抛出、返回等。切点使用表达式来定义匹配规则。

    5. 配置AOP代理:在Spring配置文件中声明AOP代理,指定目标对象和切面。

    6. 编写业务代码:实现主要业务逻辑的代码,将切面所关心的横切关注点抽离出去。

    7. 运行时代理:在程序运行时,Spring AOP会创建代理对象,并将切面逻辑织入到目标对象的方法中。

    通过上述步骤,Spring AOP能够实现在不修改原始业务逻辑的情况下,将横切关注点与主要业务逻辑结合起来,提供了一种高效、灵活的编程方式。利用Spring AOP可以实现日志记录、性能监控、事务管理等与主要业务逻辑解耦的功能。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部