1. 什么是 IoC?
IoC ,控制反转。它是一种思想而不是技术实现,描述的是 Java 开发领域对象的创建以及管理问题。例如,现有类 A 依赖于类 B,
(1)传统的开发方式:在类 A 中手动通过 new 关键字来 new 出一个 B 的对象;
(2)使用 IoC 思想的开发方式:不通过 new 关键字来创建对象,而是通过 IoC 容器来完成对象的实例化,需要哪个对象,直接从 IoC 容器里面去取即可。
2. IoC 解决了什么问题?
IoC 的思想就是两方之间不相互依赖,由第三方容器来管理相关资源。有什么好处呢?
(1)对象之间的耦合度或者说依赖程度降低;
(2)资源变的容易管理。
3. IoC 和 DI
IoC 是一种设计思想或者说是某种模式。这个设计思想就是将原本在程序中手动创建对象的控制权交由 Spring 来管理。IoC 容器是 Spring 用来实现 IoC 的载体,IoC 容器实际上就是个 Map<key, value>,Map 中存放的是各种对象。
IoC 最常见的实现方式叫做依赖注入(DI)。
4. AOP 解决了什么问题?
在不改变原有业务逻辑的情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复。
5. AOP 为什么较面向切面编程?
(1)切
指的是横切逻辑,原有业务逻辑代码不动,只能操作横切逻辑代码,所以面向横切逻辑。
(2)面
横切逻辑代码往往要影响的是很多个方法,每个方法如同一个点,多个点构成一个面。