Both Spring MVC and Spring WebFlux support this annotation through a {@code RequestMappingHandlerMapping} and{@code RequestMappingHandlerAdapter} in their respective modules and package structures. For the exact list of supported handler method arguments and return types in each, please use the reference documentation links below:
NOTE: This annotation can be used both at the class and at the method level. In most cases, at the method level applications will prefer to use one of the HTTP method specific variants {@link GetMapping @GetMapping},{@link PostMapping @PostMapping}, {@link PutMapping @PutMapping},{@link DeleteMapping @DeleteMapping}, or {@link PatchMapping @PatchMapping}.
NOTE: This annotation cannot be used in conjunction with other{@code @RequestMapping} annotations that are declared on the same element (class, interface, or method). If multiple{@code @RequestMapping} annotations are detected on the same element, a warning will be logged, and only the first mapping will be used. This also applies to composed{@code @RequestMapping} annotations such as{@code @GetMapping},{@code @PostMapping}, etc.
NOTE: When using controller interfaces (for example, for AOP proxying), make sure to consistently put all your mapping annotations — such as{@code @RequestMapping} and{@code @SessionAttributes} — on the controller interface rather than on the implementation class.]