1、解释
将创建对象实例的过程交给其他类来完成
即 对象的创建、初始化、装配(即依赖关系的管理)等控制权从应用程序代码中转移到一个专门的容器(如Spring框架)
new TestReq()变成了
private final TestService testService;构造方法
@Autowired
private TestProperties testProperties;注解注入
2、控制反转体现
- 责任转移:对象(就是你当前写代码的类)不再自行创建或查找依赖对象(就是你写代码时要调用到的其他类),而是由容器在运行时自动提供所需依赖
- 依赖透明 :对象无需了解依赖对象的具体实现细节,只需声明它们需要哪些接口或类型
- 解耦合:对象之间的依赖关系在配置层面(如XML配置文件、注解或Java配置类)中指定,而不是硬编码在源代码中
-3、实现方式
- 构造方法
- setter方法注入
- 属性注入
代码实现参考
https://cloud.tencent.com/developer/article/2319202