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

时间:2017-07-26 14:20:15

标签: spring spring-boot spring-restcontroller request-mapping

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

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

1 个答案:

答案 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