【发布时间】:2021-03-01 09:58:19
【问题描述】:
在 Spring Boot Web 应用程序布局中,我定义了一个名为 ApplicationUserService 的服务接口。一个名为ApplicationUserServiceImpl 的实现实现了ApplicationUserService 中存在的所有方法。
现在,我有一个名为 ApplicationUserController 的控制器,它在不同的 @GetMapping 注释下调用 ApplicationUserServiceImpl 的所有方法。
按照我的导师的建议,我定义了一个依赖注入如下:
public class ApplicationUserController {
private final ApplicationUserService applicationUserService; //This variable will work as an object now.
public ApplicationUserController(ApplicationUserService applicationUserService) {
this.applicationUserService = applicationUserService;
}
@GetMapping
//REST OF THE CODE
}
我是 Spring Boot 的新手,我尝试用简单的英语理解依赖注入,我理解它是如何工作的。我理解基本思想是将依赖与使用分开。但我完全不知道这在我的情况下是如何工作的。
我的问题:
- 这里 ApplicationUserService 是一个接口,它的实现定义了各种方法。在上面的代码中,
applicationUserService现在可以访问来自ApplicationUserServiceImpl的每个方法。这是怎么发生的? - 我想知道这里的对象创建是如何工作的。
- 您能告诉我在这种情况下不使用 DI 和使用 DI 的区别吗?
【问题讨论】:
标签: spring-boot dependency-injection inversion-of-control