前言
Spring 三大特性分别为AOP、IOC、DI
一、 IOC(Inversion of Controller) 即控制反转。
1.1 含义
-
Spring IOC(Inversion of Control,控制反转)是 Spring 框架的核心概念之一。它是通过依赖注入(Dependency Injection)实现的。其核心思想是将对象的创建和依赖关系交由 Spring 容器管理,而不是由程序代码直接控制。这样可以实现程序组件之间的解耦,提高代码的可维护性和扩展性。
-
依赖注入的方式包括构造器注入、setter 注入、接口注入等,目的是将对象所需的依赖传递给它,而不是让对象自己去创建依赖。
-
控制含义:控制对象的创建, IOC容器根据配置文件创建对象。比如,在没有使用 IOC 容器的时候,我们在类 A 的构造函数里写 new B(),就是在主动控制类 B 的创建。
-
反转含义:对象创建并注入依赖的动作,本来是程序员在代码中指定,但是现在交由 IOC 容器来完成。也就是说,本来是我们主动去 new 一个对象,现在变成容器在运行时自动帮我们创建并注入,举个简单的例子,ioc创建A的时候,发现依赖b,就会创建好b,并将b注入A。
-
另外,注入的内容也不一定是对象,也可以是配置文件中的值。
1.2 好处
解耦:例如对象A 依赖对象B,不许哟啊想以前在A的代码中写死依赖的实现B,只需要声明依赖的接口。然后在配置文件里面定义好具体的实现B,根据配置文件,ioc 在创建A的时候,就能创建好b,注入就行,之后B的实线需要更换的话,A的代码不用动,只需要该配置文件给A注入新的B1.
扩展性强:
对象的创建有IOC容器负责,所以创建的过程中,可以添加额外的功能,例如生成代理对象和日志记录。
二、DI(Depnedency injection 依赖注入)
2.1 含义:
实现反转的一种机制,核心思想是由Spring容器负责对象的依赖注入,而不是由对象自行创建或者查找依赖对象。
实现方式:
包括构造器注入、setter 注入、字段注入等,目的是将对象所需的依赖传递给它,而不是让对象自己去创建依赖。
2.1.1.构造器注入
- 通过构造函数参数传递依赖对象,强制保证对象初始化时依赖已存在。
- 优点:适合强制依赖,对象一旦创建即可使用。
public


651

被折叠的 条评论
为什么被折叠?



