学习顺序和内容基于深入浅出Spring Boot 2.x
第三章spring IOC
spring依赖于两个重要的思想:IOC(控制反转)和AOP(面向切面编程)
我们在学习java的时候使用创建对象的方法大部分时候就是通过new来创建。而ioc则是一种思想,它会通过描述来实现对象的获取或创建,在springboot中大部分是通过注解来实现的。
在一个系统中可能会有多个对象,这些对象不会是单独孤立的,他们之间可能会有依赖关系。
依赖:指一个类A使用到了另外一个类B。依赖关系是一种使用关系,特定事务的改变有可能会影响到使用该事物的事物,反过来则不成立。在像显示一个事务使用另外一个事务时使用。 类依赖B类,指的是B的对象作为A类的方法参数存在,称为“use”依赖关系。
为了管理这些对象,spring封装了bean作为容器来管理对象。在Spring框架中,Bean是程序中组成应用程序的对象,它是由Spring容器实例化、组装和管理的对象。简单来说,Bean是一个由Spring容器管理的Java对象。
Spring容器提供了自动创建和管理Bean的机制。通过IoC(控制反转)原则,Spring容器可以负责在程序运行时创建Bean,并将它们注入到程序中。通过配置文件(xml)或注解,我们可以告诉Spring容器如何创建、初始化、装配和管理Bean。
Bean可以是任意的Java对象,包括POJO(Plain Old Java Object)、Service、DAO等等,Spring容器会在适当的时候自动将其实例化、装配和管理。在Spring框架中,Bean是一个非常重要的概念,理解它对于理解整个Spring框架的工作原理至关重要。
IOC是一种思想,它不会只存在java中。在spring中,IOC的具体实现就是DI(依赖注入)。
Spring的IoC(Inversion of Control,控制反转)是一种软件设计模式,它的核心思想是将对象的创建和依赖性管理交给Spring容器来处理,而不是由应用程序代码直接控制。
在传统的Java应用程序中,对象之间的依赖性通常由应用程序代码直接进行管理,这通常会导致应用程序代码与底层框架代码的耦合度很高,使应用程序的扩展和维护变得困难。
Spring的IoC容器解决了这个问题,它负责创建和管理应用程序中的所有对象,并自动解决它们之间的依赖性。这样,应用程序代码就可以专注于处理业务逻辑,而不需要关心对象的创建和依赖性管理等底层细节。
总之,Spring的IoC是一种通过容器来管理对象的依赖性的技术,它可以提高应用程序的灵活性、可维护性和可扩展性,是Spring框架的核心之一。