Spring Boot中@RequestMapping是如何工作的?

11
@RestController
@RequestMapping("/employee")
public class Employee {
  @RequestMapping("/save")
  public void saveEmployee() {
    // saving employee
  }
}
@RequestMapping如何在内部工作,将请求映射到saveEmployee方法?

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html - Philipp Sander
1个回答

31
在应用程序启动期间,Spring将通过XML配置、Java配置或组件扫描识别所有的Bean,并将它们存储在ApplicationContext中。
Spring Boot会自动为您配置许多Bean,包括RequestMappingHandlerMapping
当这个Bean被初始化时,它会扫描ApplicationContext中任何被标注为@Controller的Bean。
然后它会迭代每个Controller bean,并查找使用@RequestMapping注释的方法。最后,将这些映射/处理程序对持久化在MappingRegistry中。 DispatcherServlet是您应用程序的中央HTTP请求处理程序,它将搜索ApplicationContext以查找实现HandlerMapping接口的任何Bean,而RequestMappingHandlerMapping Bean(通过继承)实现了该接口。
然后它会遍历这些bean,要求它们解决此请求的相应处理程序。RequestMappingHandlerMapping bean将通过搜索其MappingRegistry来解析处理程序。
当找到匹配项时,最终会调用处理程序方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接