From 446e7ed25c6cc026f2d3b12594138c74f94879ce Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Mon, 8 Jan 2018 09:29:52 -0500 Subject: [PATCH] Links from @RequestMapping to reference docs Issue: SPR-16266 --- .../web/bind/annotation/RequestMapping.java | 45 ++++++++++--------- .../RequestMappingHandlerAdapter.java | 4 +- .../RequestMappingHandlerAdapter.java | 9 ++-- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/web/bind/annotation/RequestMapping.java b/spring-web/src/main/java/org/springframework/web/bind/annotation/RequestMapping.java index 28a923c0181..3436f50ae06 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/annotation/RequestMapping.java +++ b/spring-web/src/main/java/org/springframework/web/bind/annotation/RequestMapping.java @@ -25,21 +25,33 @@ import java.lang.annotation.Target; import org.springframework.core.annotation.AliasFor; /** - * Annotation for mapping web requests onto specific handler classes and/or - * handler methods. + * Annotation for mapping web requests onto methods in request-handling classes + * with flexible method signatures. * - *

Handler methods annotated with this annotation can have very flexible - * signatures. The exact details of the supported method arguments and return - * values depend on the specific - * {@link org.springframework.stereotype.Controller @Controller} model supported. - * Both Spring Web MVC and Spring WebFlux support this annotation with some - * differences. More details are available in the Spring Framework reference. + *

Both Spring MVC and Spring WebFlux support this annotation through a + * {@code RequestMappingHandlerMapping} and {@code RequestMappingHandlerAdapter} + * in their respective modules and package structure. For the exact list of + * supported handler method arguments and return types in each, please use the + * reference documentation links below: + *

* - *

NOTE: {@code @RequestMapping} will only be processed if an - * an appropriate {@code HandlerMapping}-{@code HandlerAdapter} pair - * is configured. If you are defining custom {@code HandlerMappings} or - * {@code HandlerAdapters}, then you need to add {@code RequestMappingHandlerMapping} - * and {@code RequestMappingHandlerAdapter} to your configuration.. + *

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: When using controller interfaces (e.g. for AOP proxying), * make sure to consistently put all your mapping annotations - such as @@ -55,13 +67,6 @@ import org.springframework.core.annotation.AliasFor; * @see PutMapping * @see DeleteMapping * @see PatchMapping - * @see RequestParam - * @see RequestAttribute - * @see PathVariable - * @see ModelAttribute - * @see SessionAttribute - * @see SessionAttributes - * @see InitBinder * @see org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter * @see org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerAdapter */ diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java index da08b956002..7ffd2f12836 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java @@ -43,7 +43,9 @@ import org.springframework.web.reactive.result.method.InvocableHandlerMethod; import org.springframework.web.server.ServerWebExchange; /** - * Supports the invocation of {@code @RequestMapping} methods. + * Supports the invocation of + * {@link org.springframework.web.bind.annotation.RequestMapping @RequestMapping} + * handler methods. * * @author Rossen Stoyanchev * @since 5.0 diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java index e4772ff30f2..0b33b8876e6 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java @@ -98,13 +98,12 @@ import org.springframework.web.servlet.support.RequestContextUtils; import org.springframework.web.util.WebUtils; /** - * An {@link AbstractHandlerMethodAdapter} that supports {@link HandlerMethod}s - * with their method argument and return type signature, as defined via - * {@code @RequestMapping}. + * Extension of {@link AbstractHandlerMethodAdapter} that supports + * {@link RequestMapping} annotated {@code HandlerMethod}s. * *

Support for custom argument and return value types can be added via - * {@link #setCustomArgumentResolvers} and {@link #setCustomReturnValueHandlers}. - * Or alternatively, to re-configure all argument and return value types, + * {@link #setCustomArgumentResolvers} and {@link #setCustomReturnValueHandlers}, + * or alternatively, to re-configure all argument and return value types, * use {@link #setArgumentResolvers} and {@link #setReturnValueHandlers}. * * @author Rossen Stoyanchev