更多面试题请看这里:https://interview.raoyunsoft.com/
面试题专栏会持续更新欢迎关注订阅

Spring IOC(控制反转)容器是 Spring 框架的核心引擎,它负责创建、装配和管理应用中的所有对象(这些对象称为 Bean)。通过将对象的创建和依赖管理权从开发者手中转移到容器,实现了代码的解耦和灵活性。

核心职责
  1. 对象创建
    自动实例化 Bean 对象,无需手动 new 操作:

    // 传统方式:开发者主动创建对象
    UserService userService = new UserServiceImpl();
    
    // IOC 方式:容器创建对象
    @Autowired
    UserService userService; // 容器注入实例
    
  2. 依赖注入(DI)
    自动解决对象间的依赖关系:

    依赖
    注入
    注入
    OrderService
    PaymentService
    IOC容器
  3. 生命周期管理
    控制 Bean 的完整生命周期:

    • 初始化回调(@PostConstruct
    • 销毁回调(@PreDestroy
    • 作用域管理(单例/原型/请求/会话)
  4. 配置管理
    支持多种配置方式:

    • XML 配置(传统)
    • 注解(@Component, @Bean
    • Java Config(现代主流)
核心优势
特性传统编程Spring IOC
对象创建开发者手动 new容器自动实例化
依赖管理硬编码依赖自动注入依赖
耦合度高耦合低耦合
可测试性难模拟依赖轻松 Mock 测试
容器类型
  1. BeanFactory
    基础容器,提供基本 DI 功能(适合资源受限环境)
  2. ApplicationContext
    企业级容器(推荐使用),扩展功能包括:
    • 国际化支持
    • 事件发布机制
    • AOP 集成
    • 资源加载抽象

场景示例:电商系统中,OrderService 依赖 PaymentService。IOC 容器会自动创建这两个对象,并将 PaymentService 实例注入到 OrderService,无需开发者手动关联。

更多推荐