PayloadArgumentResolver does not insist on configured Validator anymore
Issue: SPR-12567
This commit is contained in:
parent
752bbbdd05
commit
ed0e2f4445
|
@ -31,7 +31,6 @@ import org.springframework.messaging.converter.MessageConverter;
|
|||
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver;
|
||||
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite;
|
||||
import org.springframework.messaging.handler.invocation.InvocableHandlerMethod;
|
||||
import org.springframework.validation.Errors;
|
||||
import org.springframework.validation.Validator;
|
||||
|
||||
/**
|
||||
|
@ -62,7 +61,7 @@ public class DefaultMessageHandlerMethodFactory implements MessageHandlerMethodF
|
|||
|
||||
private MessageConverter messageConverter;
|
||||
|
||||
private Validator validator = new NoOpValidator();
|
||||
private Validator validator;
|
||||
|
||||
private List<HandlerMethodArgumentResolver> customArgumentResolvers;
|
||||
|
||||
|
@ -169,17 +168,4 @@ public class DefaultMessageHandlerMethodFactory implements MessageHandlerMethodF
|
|||
return resolvers;
|
||||
}
|
||||
|
||||
|
||||
private static final class NoOpValidator implements Validator {
|
||||
|
||||
@Override
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate(Object target, Errors errors) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -56,9 +56,24 @@ public class PayloadArgumentResolver implements HandlerMethodArgumentResolver {
|
|||
private final Validator validator;
|
||||
|
||||
|
||||
/**
|
||||
* Create a new {@code PayloadArgumentResolver} with the given
|
||||
* {@link MessageConverter}.
|
||||
* @param messageConverter the MessageConverter to use (required)
|
||||
* @since 4.0.9
|
||||
*/
|
||||
public PayloadArgumentResolver(MessageConverter messageConverter) {
|
||||
this(messageConverter, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new {@code PayloadArgumentResolver} with the given
|
||||
* {@link MessageConverter} and {@link Validator}.
|
||||
* @param messageConverter the MessageConverter to use (required)
|
||||
* @param validator the Validator to use (optional)
|
||||
*/
|
||||
public PayloadArgumentResolver(MessageConverter messageConverter, Validator validator) {
|
||||
Assert.notNull(messageConverter, "converter must not be null");
|
||||
Assert.notNull(validator, "validator must not be null");
|
||||
Assert.notNull(messageConverter, "MessageConverter must not be null");
|
||||
this.converter = messageConverter;
|
||||
this.validator = validator;
|
||||
}
|
||||
|
|
|
@ -67,7 +67,6 @@ import org.springframework.util.Assert;
|
|||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.PathMatcher;
|
||||
import org.springframework.validation.Errors;
|
||||
import org.springframework.validation.Validator;
|
||||
|
||||
/**
|
||||
|
@ -309,8 +308,7 @@ public class SimpAnnotationMethodMessageHandler extends AbstractMethodMessageHan
|
|||
resolvers.add(new MessageMethodArgumentResolver());
|
||||
|
||||
resolvers.addAll(getCustomArgumentResolvers());
|
||||
resolvers.add(new PayloadArgumentResolver(this.messageConverter,
|
||||
(this.validator != null ? this.validator : new NoOpValidator())));
|
||||
resolvers.add(new PayloadArgumentResolver(this.messageConverter, this.validator));
|
||||
|
||||
return resolvers;
|
||||
}
|
||||
|
@ -457,17 +455,4 @@ public class SimpAnnotationMethodMessageHandler extends AbstractMethodMessageHan
|
|||
return new AnnotationExceptionHandlerMethodResolver(beanType);
|
||||
}
|
||||
|
||||
|
||||
private static final class NoOpValidator implements Validator {
|
||||
|
||||
@Override
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validate(Object target, Errors errors) {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue