更多面试题请看这里: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,无需开发者手动关联。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐