@RestController
@RequestMapping("/employee")
public class Employee {
@RequestMapping("/save")
public void saveEmployee() {
// saving employee
}
}
@RequestMapping
如何在内部将请求映射到saveEmployee
方法?
答案 0 :(得分:8)
在应用程序启动期间,Spring将通过XML Config,Java Config或Component Scanning识别所有Bean
,并将它们存储在ApplicationContext
中。
Spring Boot为您自动配置了许多Beans,包括RequestMappingHandlerMapping。
当此Bean为initialized时,它会扫描ApplicationContext以查找使用@Controller
注释的任何Bean。
然后,对于使用Controller
注释的方法,它遍历每个@RequestMapping
bean和looks。最后,它将这些映射/处理程序对保留在MappingRegistry
DispatcherServlet
是您的应用程序的中央HTTP请求处理程序,它将search ApplicationContext
用于实现HandlerMapping
接口的任何Bean,{{1} Bean(通过继承)。
然后迭代这些bean,要求他们解析此请求的相应处理程序。 RequestMappingHandlerMapping
bean将通过searching RequestMappingHandlerMapping
来解析处理程序。
找到匹配项后,处理程序方法最终为invoked。