Spring IOC 指南

Spring IOC 指南

Spring IOC 指南

典型回答

1、IOC(inversion of control),"控制反转"
  • 何为控制反转?

    在传统的程序设计中,应用程序代码通常控制着对象的创建和管理。

    在 IOC 中,控制关系发生了反转。控制权被转移到 Spring 容器中,容器负责创建和管理对象,并在需要的时候将它们注入到应用程序中。

    IOC 只是一种思想和理念,可以有不同的实现方式。

    参考:控制反转(IOC)

  • 在 Spring 的 IOC 中,对象由 IOC 容器创建并管理,我们只需要在使用的时候从容器中获取就行了。

  • 没有 ioc 时

  • 有了 ioc 后
2、IOC 的优点
  1. 使用者不用关心引用 bean 的实现细节。
  2. 不用为创建多个相同的 bean 导致浪费。
  3. 对于 Bean 的修改,使用方无需感知。
3、Spring IOC
java 复制代码
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 直接使用 getBean 获取对象
Student student123 = context.getBean("student123", Student.class);
4、Spring IOC 如何实现?
  1. 创建一个新的 AnnotationConfigApplicationContext,扫描给定包中的 Bean 定义并自动刷新上下文。
  2. 获取指定 Bean 的一个实例。
  3. 调用 Bean 方法。
相关推荐
独泪了无痕3 小时前
探索Pinyin4j-Java中的拼音转换利器
java·后端
道尔柯南4 小时前
C++ string 类详解:从常用接口到深拷贝,彻底掌握字符串处理
android·java·c++
kingx35 小时前
Bugku 3122 谷歌小恐龙题解:纯离线逆向 Vault 的 AES-GCM 加密资源(附 Python 解密器)
java·逆向·ctf·bugku·aes-gcm
DevOpenClub7 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
露天赏雪8 小时前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
天天被压力8 小时前
【A股分钟级高频数据完全手册 #06】北交所分钟级数据接口:京市股票Pro版最新分时
java·人工智能·python
天天被压力8 小时前
【A股分钟级高频数据完全手册 #05】指数历史分钟数据接口:Pro版沪深指数分时回放
java·人工智能·python
captain3768 小时前
▲统一功能——DispatcherServlet源码分析
java·spring·java-ee·log4j·maven
金銀銅鐵9 小时前
JDK 21 中 List.of 的实现细节:从 List12 到 ListN
java·后端·ai编程
yeccheng10 小时前
MySQL 索引超详解:从底层 B+ 树到面试高频考点
java·开发语言·jvm·mysql·面试