2. 重新认识 IOC

2.1 IoC 发展简介

2.2 IoC 主要实现策略

  • 依赖查找

  • 依赖注入

2.3 IoC 容器的职责

  • 依赖处理

    • 依赖查找

    • 依赖注入

  • 生命周期管理

    • 容器

    • 托管的资源(Java Beans 或其他资源)

  • 配置

    • 容器

    • 外部化配置

    • 托管的资源(Java Beans 或其他资源)

2.4 IoC 容器的实现

  • Java SE

    • Java Beans

    • Java ServiceLoader SPI

    • JNDI(Java Naming and Directory Interface)

  • Java EE

    • EJB(Enterprise Java Beans)

    • Servlet

  • 开源

    • Apache Avalon

    • PicoContainer

    • Google Guice

    • Spring Framework

2.5 传统 IoC 容器实现

Java Beans 作为 IoC 容器,特性如下:

  • 依赖查找

  • 生命周期管理

  • 配置元信息

  • 事件

  • 自定义

  • 资源管理

  • 持久化

规范:

2.6 轻量级 IoC 容器

2.7 依赖查找 VS. 依赖注入

类型依赖处理实现便利性代码侵入性API 依赖性可读性
依赖查找主动获取相对繁琐侵入业务代码依赖容器 API良好
依赖注入被动提取相对便利低侵入性不依赖容器 API一般

2.8 构造器注入 VS. Setter 注入

Spring 团队推荐使用构造器注入,对象是不可变的确保依赖对象不是空的,缺点是参数过多,代码看起来不是很良好,需要适当进行重构

Setter 注入应该仅用于可选对象的注入

2.9 面试题精选

2.9.1 什么是 IoC

简单的说,IoC 是控制反转,类似于好莱坞原则,主要有依赖查找和依赖注入实现

2.9.2 依赖查找和依赖注入的区别

依赖查找是主动或手动的依赖查找方式,通常需要依赖容器或标准 API 实现。而依赖注入则是手动或自动依赖绑定的方式,无需以来特定的容器和 API

2.9.3 Spring 作为 IoC 容器有什么优势

  • 典型的 IoC 管理,依赖查找和依赖注入

  • AOP 抽象

  • 事务抽象

  • 事件机制

  • SPI 扩展

  • 强大的第三方整合

  • 易测试性

  • 更好的面向对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值