当前位置: 首页 > news >正文

Spring两大特性 AOP和IOC

  1. IOC
    IOC即为控制反转,Spring不再需要我们手动new新对象,而是交给Spring容器,由容器统一管理对象的生命周期和对象的依赖关系。
    IOC实现最主要的方式为依赖注入(DI), 容器在创建对象时会将其所依赖的其他对象注入进去,比如Controller中需要Dao对象,容器会直接将Dao提供给Controller。
    IOC容器是实现控制反转的核心载体,像管理对象的生命周期和依赖关系等任务都是由其来完成的,ApplicationContext就是Spring的IOC容器。
    依赖注入(DI)实现的核心方式为 通过构造器注入,Setter方法注入,字段注入(通过注解注入)。

IOC实现原理:

  1. Spring会通过读取配置信息(XML,注解)获得其所需的Bean的类名,依赖关系等。
  2. 解析 Bean 定义 配置信息被解析为 BeanDefinition 对象,封装了 Bean 的元数据信息,如类路径、作用域、依赖关系等。
  3. 实例化 Bean 根据 BeanDefinition 中的类名,容器使用反射机制调用类的构造方法创建对象。
  4. 依赖注入 容器解析 Bean 的依赖关系,并通过构造方法、Setter 方法或字段注入,将依赖的对象注入到目标对象中。
  5. 执行初始化方法(如@PostConstruct标注的方法),完成 Bean 的最终准备。
  6. 将初始化完成的 Bean 存入容器的缓存(如 Map),供后续获取使用。

2.AOP
AOP即为面向切面编程,AOP可以在不修改代码的前提下,为代码统一新增功能,常用在事务管理,日志记录等场景。我们只需要定义好切入点,普通业务组件,增强处理。

AOP实现原理:
AOP可以通过两种方式实现,一种是JDK动态代理,另一种是CGLib动态代理。
1.JDK动态代理:
Spring默认通过JDK动态代理实现AOP,需要两个组件,一个是InvocationHandler接口,我们需要编写了一个类来实现这个接口然后重写invoke方法,这个类就是我们提供的代理方法,第二个是Proxy类,我们可以通过这个类的newProxyInstance方法返回一个代理对象,生成的代理类实现了原来那个类的所有接口,并对接口的方法进行了代理,我们通过代理对象调用这些方法时,底层将通过反射,调用我们实现的invoke方法。
2.CGLib动态代理
Cglib的实现是在字节码的基础上的,并且使用了开源的ASM读取字节码,对类实现增强功能的。

http://www.jsqmd.com/news/62881/

相关文章:

  • deepin系统配置堡垒机支持deepin-terminal
  • 2025年北京十大债权债务律师机构排行榜,实力强售后完善的债
  • 2025年中国十大电线电缆制造商推荐:电线电缆靠谱厂商有哪些
  • 最好的美白丸怎么选?跨国临床数据对照后的真实排名!
  • 2025年上海周边H488*300型钢批发服务商推荐,售后完
  • 2025年重庆药膳鸡火锅TOP5排行榜:李子坝梁山鸡,附滋补
  • 2025年专业新闻发稿公司推荐:高性价比平台评估与深度解析
  • deepin-terminal支持堡垒机
  • 一物一码公司推荐:再互动 —— 数据驱动全链路,2025 企业价值增长首选
  • 2025年五大高灵敏度振动传感器品牌排行榜,新测评精选传感器
  • 2025年度北京商事诉讼律师TOP5权威推荐:资深律师团队甄
  • 第四次作业
  • 2025年12月广东佛山琉璃瓦/青瓦源头厂家深度解析:如何选择靠谱供应商避坑指南
  • 2025年目前最好的微动开关供货商有哪些,汽车微动开关/新能源微动开关/大电流微动开关/小型微动开关/家电微动开关供货商怎么选择
  • 2025 年口碑好的陕西扫地机厂家用户口碑最佳榜
  • 2025年江苏靠谱的H488*300型钢回收渠道推荐:看哪家
  • 2025年12月广东佛山青瓦/琉璃瓦制造厂家排行榜前十名:专业评测与选购指南
  • 2025年五大知名的振动传感器公司推荐,看哪家产品质量好
  • 2025年12月水处理设备厂家优选:​反渗透/超纯水/软化水/净化水设备厂家盘点
  • 实用指南:【C++:AVL树】深入理解AVL树的平衡之道:从原理、旋转到完整实现代码
  • Kaplay
  • 云原生周刊:K8s 成为人工智能的新动力引擎
  • k8s helm部署kafka可视化工具kowl
  • 【2025 最新】蜘蛛纸牌电脑版下载安装教程(经典免费中文版,一次成功安装)
  • 2025年H488*300型钢批发优质渠道推荐:信誉源头厂家
  • 2025年商用空气能十大品牌排名,看哪家品牌知名度大?
  • 2025初中培训机构精选推荐:初三冲刺封闭式全托辅导机构|一对一的初中辅导机构推荐
  • Spring Boot 日志系统实战:从配置到最佳实践
  • 最好的美白丸怎么选?跨国临床数据对照后的真实排名
  • ZZ1061. [ABC110D] Factorization