计算机系统应用教程网站

网站首页 > 技术文章 正文

简单的Spring Boot 3 - IoC(控制反转)和DI(依赖注入)

btikc 2024-10-15 09:03:42 技术文章 6 ℃ 0 评论

教程专栏持续更新中(关注不迷路~)


控制反转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();
    }
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表