学习初期有点懵逼,现在有点思路了,所以过来记录一下。
一下仅代表个人见解,如有出入,欢迎指正。
什么是依赖注入
Dependency Injection(简称DI注入)。它是 spring 框架核心 ioc 的具体实现,也是Spring的核心之一。
我好奇的是,
什么样的操作能被称之为依赖注入,你可以这样理解:
Spring在创建被调用者实例的时候,会自动的将调用者需要的对象实例注入给调用者,这样调用者就可以通过容器获取到被调用者的实例,这种的称之为依赖注入。
比如说创建Service实例的时候,需要用到Dao,那么在创建Service实例的时候,Spring容器会帮助我们将Dao的实例注入到Service这边,供我们调用。
什么是控制反转,你可以这样理解:
当某个实例需要另一个Java实例的时候,传统的方法是由调用者创建被调用者的实例(使用new关键字创建被调用者实例),而使用Spring框架之后,被调用者的实例不再由调用者进行创建了,而是交由了Spring容器,这种的称之为控制反转。
比如说,我们在Service使用Dao的时候,我们可以选择手动创建一个Dao的实例,然后通过对象的set方法或者构造器进行对应的实例化,但是有了框架之后,我们就不需要关注这个创建过程了,只需要按需配置就可以了。
依赖注入和控制反转有人说含义相同,表述的是同一个 都是Spring核心中的依赖注入,但是我认为 依赖注入关注的是Bean注入的方式,而控制反转更关注的是Bean的创建方式。所以我感觉两者不是同一个东西。
依赖注入的实现方式:
- 构造方法注入
- set方法注入
- c空间 p空间注入
- 复杂类型注入
偷懒一下,回头补全。