什么是SpringIoC?优点是什么?简述SpringAoP的原理和优点?

本文深入解析了IoC(控制反转)和AOP(面向切面编程)的概念及其在软件开发中的应用。IoC通过依赖注入实现代码的松耦合,而AOP则利用动态代理技术实现在方法调用前后自动执行自定义逻辑,两者共同促进代码的可维护性和重用性。

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

IOC:Inversion of Control控制反转,也叫(Dependency Injection)依赖注入。IoC 不是一种技术,只是一种思想。它能指导我们如何设计出松耦合、更优良的程序。比如在程序中,依赖注入就是利用某种工具,将依赖注入到需要的位置。就好比:

药物注入就是利用注射器,将药物注入到需要的人体中,就是药物注入。

依赖注入还有另一层意思:就是依赖第三方工具完成注入的操作。依赖注入的核心原理是注解和反射。
优点是

  1. 内存控制:统一管理对象,避免对象乱创建导致额外的内存开销。便于内存的优化。
  2. 降低耦合度:便于项目的扩展、易于维护。如果IoC+接口情况下,删除任意实现类都不会导致程序编译出错。虽然运行到特定得代码会报错,但是其他代码在使用时不会有问题-----从侧面也反应出是松耦合。

AOP(Aspect-Oriented Programming): 面向切面编程
AOP的主要原理:动态代理。
代理模式:静态代理和动态代理(JDK动态代理、CGLib动态代理)。
静态代理:针对每个具体类分别编写代理类;针对一个接口编写一个代理类;
动态代理的原理:反射。
AOP优点是:

  1. AOP实现日志管理:方法的开始记录入参,方法结束需要记录返回值和运行时间。
  2. AOP比IoC更简单,直白点说就是实现调用某个方法之前或/和之后,自动执行一系列自定义的语句。

spring 的AOP和IOC都是为了解决系统代码耦合度过高的问题。使代码重用度高、易于维护。
注:

[CGLib采用ASM字节码框架将被代理类的字节码重组,产生成一个新的类,从而实现的代理,ASM是Java的一个字节码框架]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值