@RestController
@RequestMapping("/employee")
public class Employee {
@RequestMapping("/save")
public void saveEmployee() {
// saving employee
}
}
@RequestMapping
如何将在内部工作以将请求映射到 saveEmployee
方法?
最佳答案
在应用程序启动期间,Spring 将识别所有 Bean
s 通过 XML 配置、Java 配置或组件扫描的方式,并将它们存储在 ApplicationContext
.
Spring Boot 为您自动配置了许多 Bean,包括 RequestMappingHandlerMapping .
当这个 Bean 是 initialized它会在 ApplicationContext 中扫描任何带有 @Controller
注释的 Bean .
然后它遍历每个 Controller
bean 和looks对于带有 @RequestMapping
注释的方法.最后,它将这些映射/处理程序对保存在 MappingRegistry 中。DispatcherServlet
是您的应用程序的中央 HTTP 请求处理程序,它将 search ApplicationContext
对于任何实现 HandlerMapping
的 Bean接口(interface),其中RequestMappingHandlerMapping
Bean 确实(通过继承)。
然后它遍历这些 bean,要求它们为此请求解析相应的处理程序。 RequestMappingHandlerMapping
bean 将通过 searching 解析处理程序它的MappingRegistry
.
当找到匹配项时,处理程序方法最终为 invoked .
关于spring - @RequestMapping 在 Spring Boot 内部如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329692/