Spring像 GetMapping 这样的引导注解在内部使用 Spring AOP 吗?
Do SpringBoot annotations like GetMapping use Spring AOP internally?
来自 Spring 引导初学者的一个可能很愚蠢的问题。
我正在阅读有关 AOP 的资料,感觉很多注释的处理(包括 GetMapping
和 PostMapping
)与 AOP 天生契合 - 我们有一个共同的问题(例如,所有用 GetMapping
注释的函数都被视为 HTTP GET 方法)分布在许多不同的 类.
Spring 是否在内部使用 AOP 来实现它的处理程序来处理 GetMapping
之类的东西?
不,Spring 不使用 AOP 来为请求的 URI 找到正确的处理程序。
这基本上是 DispatcherServlet 的工作。
@GetMapping
、@PostMapping
、@PutMapping
、@PatchMapping
、@DeleteMapping
都是各自@RequestMapping
注解的快捷方式。
DispatcherServlet
是一个前端控制器,它处理传入的请求并将它们委托给正确的处理程序。
当请求到达时,DispatcherServlet
使用 WebApplicationContext
中的 HandlerMapping
和 HandlerAdapter
将请求委托给适当的处理程序。当然,它要复杂得多,而且还有很多工程正在进行。
DispatcherServlet
不直接调用处理程序方法,而是使用 HandlerAdapter
接口。具体来说,对于 @RequestMapping
注释及其快捷方式,RequestMappingHandlerAdapter is used together with the RequestMappingHandlerMapping.
RequestMappingHandlerMapping
被 DispatcherServlet
用来获取处理程序对象(当在 class 中使用 @RequestMapping
而不是方法时)和处理程序方法 (使用 @RequestMapping
时,它是方法中的快捷方式)。这个 class 负责为每个 @RequestMapping
注释的 class 或方法创建 RequestMappingInfo ,所以,基本上,它映射了相应的它的路径处理程序。
RequestMappingHandlerAdapter
用于通过RequestMappingHandlerAdapter#invokeHandlerMethod
调用handler方法(参见here)
所以不,Spring 在这种情况下不使用 AOP。正在进行大量智能映射。
来自 Spring 引导初学者的一个可能很愚蠢的问题。
我正在阅读有关 AOP 的资料,感觉很多注释的处理(包括 GetMapping
和 PostMapping
)与 AOP 天生契合 - 我们有一个共同的问题(例如,所有用 GetMapping
注释的函数都被视为 HTTP GET 方法)分布在许多不同的 类.
Spring 是否在内部使用 AOP 来实现它的处理程序来处理 GetMapping
之类的东西?
不,Spring 不使用 AOP 来为请求的 URI 找到正确的处理程序。
这基本上是 DispatcherServlet 的工作。
@GetMapping
、@PostMapping
、@PutMapping
、@PatchMapping
、@DeleteMapping
都是各自@RequestMapping
注解的快捷方式。
DispatcherServlet
是一个前端控制器,它处理传入的请求并将它们委托给正确的处理程序。
当请求到达时,DispatcherServlet
使用 WebApplicationContext
中的 HandlerMapping
和 HandlerAdapter
将请求委托给适当的处理程序。当然,它要复杂得多,而且还有很多工程正在进行。
DispatcherServlet
不直接调用处理程序方法,而是使用 HandlerAdapter
接口。具体来说,对于 @RequestMapping
注释及其快捷方式,RequestMappingHandlerAdapter is used together with the RequestMappingHandlerMapping.
RequestMappingHandlerMapping
被 DispatcherServlet
用来获取处理程序对象(当在 class 中使用 @RequestMapping
而不是方法时)和处理程序方法 (使用 @RequestMapping
时,它是方法中的快捷方式)。这个 class 负责为每个 @RequestMapping
注释的 class 或方法创建 RequestMappingInfo ,所以,基本上,它映射了相应的它的路径处理程序。
RequestMappingHandlerAdapter
用于通过RequestMappingHandlerAdapter#invokeHandlerMethod
调用handler方法(参见here)
所以不,Spring 在这种情况下不使用 AOP。正在进行大量智能映射。