Spring - 7 Spring框架的核心功能之AOP技术

本文深入讲解了面向切面编程(AOP)的概念,探讨了AOP如何作为一种编程范式,帮助开发者组织程序结构,减少代码重复,提高代码的可重用性和开发效率。详细介绍了Spring框架中AOP的实现方式,包括基于JDK的动态代理和CGLIB动态代理,并解释了它们在不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AOP的概述

    1. 什么是AOP的技术?
        * 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程
        * AOP是一种编程范式,隶属于软工范畴,指导开发者如何组织程序结构
        * AOP最早由AOP联盟的组织提出的,制定了一套规范.Spring将AOP思想引入到框架中,必须遵守AOP联盟的规范
        * 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术
        * AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型
        * 利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率
    
    2. AOP:面向切面编程.(思想.---解决OOP遇到一些问题)
    3. AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存)
    
    4. 为什么要学习AOP
        * 可以在不修改源代码的前提下,对程序进行增强!!   

 

Spring框架的AOP的底层实现

    1. Srping框架的AOP技术底层也是采用的代理技术,代理的方式提供了两种
        1. 基于JDK的动态代理
            * 必须是面向接口的,只有实现了具体接口的类才能生成代理对象
        
        2. 基于CGLIB动态代理
            * 对于没有实现了接口的类,也可以产生代理,产生这个类的子类的方式
    
    2. Spring的传统AOP中根据类是否实现接口,来采用不同的代理方式
        1. 如果实现类接口,使用JDK动态代理完成AOP
        2. 如果没有实现接口,采用CGLIB动态代理完成AOP

 

代码实现:

详见:java 动态代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值