为什么下面代码中接口Iproductservice能直接使用方法
@Autowired
private IProductService productService;
@RequestMapping("/toList")
public String toList() {
return "product/list";
}
@RequestMapping("/list")
@ResponseBody
public LayUITableResult list(Integer page, Integer limit) {
LayUITableResult layUITableResult = productService.list(page, limit);
return layUITableResult;
}
@Autowired
注解用于将 IProductService
接口的实例注入到控制器中。通常,这是由 Spring 容器负责管理应用程序中的 bean。
下面是代码的解释:
-
Autowired 注入:
@Autowired private IProductService productService;
@Autowired
注解告诉 Spring 自动将IProductService
的实例注入到productService
字段中。 -
使用 ProductService:
@RequestMapping("/list") @ResponseBody public LayUITableResult list(Integer page, Integer limit) { LayUITableResult layUITableResult = productService.list(page, limit); return layUITableResult; }
- 控制器的
list
方法使用productService
bean 调用IProductService
接口的list
方法。 - 这是因为
productService
字段已经自动填充了实现了IProductService
接口的类的实例。
- 控制器的
-
依赖注入:
- Spring 的依赖注入机制负责查找一个适合的实现了
IProductService
接口的 bean,并将其注入到控制器中。这通常是通过在应用程序上下文中配置 bean 来实现的。
- Spring 的依赖注入机制负责查找一个适合的实现了
@Autowired
注解的主要作用是实现依赖注入,即将一个 bean(在这里是 IProductService
接口的实现类的实例)自动注入到另一个类(在这里是控制器)中。通过这种方式,Spring 框架能够在运行时将依赖关系解析并将相应的对象提供给需要它们的类。
在代码中,@Autowired
注解被用于注入 IProductService
接口的实例到 productService
字段中。这允许控制器类中的方法直接调用 productService
对象的方法,而不需要手动创建 IProductService
的实现类的实例。
简而言之,@Autowired
注解有助于实现松耦合,使得代码更容易维护和扩展。Spring 框架负责在运行时处理依赖关系,使开发者可以更专注于业务逻辑而不必过多关注对象的创建和管理。