Class RequestPartMethodArgumentResolver

All Implemented Interfaces:
HandlerMethodArgumentResolver

public class RequestPartMethodArgumentResolver extends AbstractMessageReaderArgumentResolver
Resolver for @RequestPart arguments where the named part is decoded much like an @RequestBody argument but based on the content of an individual part instead. The arguments may be wrapped with a reactive type for a single value (e.g. Reactor Mono, RxJava Single).

This resolver also supports arguments of type Part which may be wrapped with a reactive type for a single value or multiple values.

Since:
5.0
Author:
Rossen Stoyanchev
  • Constructor Details

    • RequestPartMethodArgumentResolver

      public RequestPartMethodArgumentResolver(List<org.springframework.http.codec.HttpMessageReader<?>> readers, org.springframework.core.ReactiveAdapterRegistry registry)
  • Method Details

    • supportsParameter

      public boolean supportsParameter(org.springframework.core.MethodParameter parameter)
      Description copied from interface: HandlerMethodArgumentResolver
      Whether this resolver supports the given method parameter.
      Parameters:
      parameter - the method parameter
    • resolveArgument

      public reactor.core.publisher.Mono<Object> resolveArgument(org.springframework.core.MethodParameter parameter, BindingContext bindingContext, org.springframework.web.server.ServerWebExchange exchange)
      Description copied from interface: HandlerMethodArgumentResolver
      Resolve the value for the method parameter.
      Parameters:
      parameter - the method parameter
      bindingContext - the binding context to use
      exchange - the current exchange
      Returns:
      Mono for the argument value, possibly empty
    • getPartValues

      public reactor.core.publisher.Flux<org.springframework.http.codec.multipart.Part> getPartValues(org.springframework.core.MethodParameter parameter, @Nullable org.springframework.web.bind.annotation.RequestPart requestPart, boolean isRequired, org.springframework.web.server.ServerWebExchange exchange)