一尘不染

在Spring Boot中@RequestMapping内部如何工作?

spring-boot

@RestController
@RequestMapping("/employee")
public class Employee {
  @RequestMapping("/save")
  public void saveEmployee() {
    // saving employee
  }
}

如何在@RequestMapping内部将请求映射到saveEmployee方法?


阅读 308

收藏
2020-05-30

共1个答案

一尘不染

在应用程序启动期间,Spring将Bean通过XML Config,Java Config或Component Scanning
识别所有s并将它们存储在中ApplicationContext

Spring
Boot为您自动配置许多Bean,包括RequestMappingHandlerMapping

初始化此Bean时,它将在ApplicationContext中扫描所有带注释的Bean
@Controller

然后,对每个Controllerbean进行迭代,并查找带有注释的方法@RequestMapping。最后,它将这些映射/处理程序对保留在MappingRegistry中

DispatcherServlet是你的应用程序中心HTTP请求处理程序,它会搜索ApplicationContext为实现任意豆HandlerMapping接口,其中RequestMappingHandlerMapping豆做(通过继承的方式)。

然后遍历这些bean,要求它们为该请求解析相应的处理程序。该RequestMappingHandlerMappingbean将通过解决处理程序搜索MappingRegistry

找到匹配项后,将最终调用处理程序方法。

2020-05-30