第3章 全注解下的Spring IoC
Spring最成功之处在于其提出的理念,而不是其技术本身。Spring依赖两个核心理念,一个是控制反转(inversion of control,IoC),另一个是面向方面的程序设计(aspect-oriented programming,AOP)。IoC是Spring的核心,可以说Spring是一种基于IoC编程的框架。因为Spring Boot是基于注解来应用Spring IoC的,所以本章会使用全注解来讲解Spring IoC,为后续章节打下基础。
Spring IoC是一种通过描述来创建或者获取对象的技术,而这种技术不是Spring甚至不是Java独有的。Java初学者更为熟悉的是使用new关键字来创建对象,而Spring是通过描述来创建对象的。Spring Boot并不建议使用XML,而是通过注解的描述生成对象,所以本章主要是通过注解来介绍Spring IoC技术。
一个系统可以创建各种对象,并且这些对象都需要进行管理。此外,我们应该注意到对象之间并不是孤立的,它们之间还可能存在依赖的关系。例如,一个班级是由多个老师和同学组成的,那么班级就依赖于多个老师和同学了。为此,Spring IoC还提供了依赖注入的功能,使得开发者能够通过描述来管理各个对象之间的关系。
为了描述上述的班级、老师和同学这3个对象关系,我们需要一个容器来管理它们和它们之间的关系。在Spring中,每个需要管理的对象称为Spring Bean(简称Bean),而Spring管理这些Bean的容器称为Spring IoC容器(简称IoC容器)。IoC容器需要具备两个基本的功能:
● 通过描述管理Bean,包括定义、发布、装配和销毁Bean;
● 通过描述完成Bean之间的依赖关系。
在使用IoC容器之前,需要对它有基本的认识。