网站首页 > 技术文章 正文
教程专栏持续更新中(关注不迷路~)
控制反转IoC( Inversion of Control)
是一种独立于编程语言的软件设计原则,它实际上并不创建对象,而是描述了对象创建的方式。
IoC是一种原则,其中程序的控制流程被反转:不是程序员控制程序的流程,而是框架或服务接管了程序的流程控制, 意味着将你设计好的对象交给容器控制.
总结: 控制反转是一种软件设计原则,它改变了程序的控制流程。
依赖注入DI(Dependency Injection)
依赖注入是实现控制反转的模式。通过依赖注入,创建对象的责任从应用程序转移到了Spring IoC容器。它减少了多个对象之间的耦合,因为对象是由框架动态注入的。
总结: 依赖注入是实现控制反转的模式,它通过将对象的创建责任移交给Spring IoC容器来降低对象之间的耦合。
代码实例
定义一个 StudentService类,使用@Service声明这是一个Spring Bean, 由Spring 容器进行管理。
创建StudentService
@Service
public class StudentService {
public String getStuentInfo() {
return "学生150人";
}
}
在Controller 中使用
定义一个 StudentController类,这个类依赖StudentService类, 这里通过@Autowired注解将StudentService注入StudentController中,(其他的依赖注入方法之后会介绍),这样我们就不需要手动创建StudentService的实例,而交给Spring管理。
使用依赖注入
@RestController
public class StudentrController {
// StudentService 类的一个实例自动注入到当前类中
@Autowired
private StudentService studentrService;
@GetMapping("/user")
public String getUser() {
return studentService.getStuentInfo();
}
}
不使用依赖注入
@RestController
public class StudentrController {
private StudentService studentService;
public StudentrController() {
// 实例化StudentService
this.studentService = new StudentService();
}
@GetMapping("/students")
public String getStudentNumber) {
return studentService.getStudentInfo();
}
}
猜你喜欢
- 2024-10-15 BATJ面试必会之 Spring 篇(30题) 面试spring的面试题
- 2024-10-15 Spring知识点提炼 spring题
- 2024-10-15 springmvc的核心是啥,请求的流程怎么处理,控制反转怎么实现
- 2024-10-15 spring源码分析——spring大纲 spring源码分析和总结简书
- 2024-10-15 Spring思维导图,让Spring不再难懂(ioc篇)
- 2024-10-15 Spring框架介绍及使用 spring框架的使用步骤
- 2024-10-15 架构师必知必会:Java内置的控制反转机制-Service Provider
- 2024-10-15 轻松理解 Spirng IoC/控制方向反转
- 2024-10-15 什么是控制反转(ioc),通过解释总结告诉你
- 2024-10-15 搞透IOC,Spring IOC看这篇就够了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)