类org.springframework.core.annotation.SynthesizingMethodParameter源码实例Demo

下面列出了怎么用org.springframework.core.annotation.SynthesizingMethodParameter的API类实例代码及写法,或者点击链接到github查看源代码。

@Test // SPR-14238
public void sendToUserWithSendToOverride() throws Exception {
	given(this.messageChannel.send(any(Message.class))).willReturn(true);

	Class<?> clazz = SendToUserWithSendToOverrideTestBean.class;
	Method method = clazz.getDeclaredMethod("handleAndSendToOverride");
	MethodParameter parameter = new SynthesizingMethodParameter(method, -1);

	String sessionId = "sess1";
	Message<?> inputMessage = createMessage(sessionId, "sub1", null, null, null);
	this.handler.handleReturnValue(PAYLOAD, parameter, inputMessage);

	verify(this.messageChannel, times(2)).send(this.messageCaptor.capture());
	assertResponse(parameter, sessionId, 0, "/dest3");
	assertResponse(parameter, sessionId, 1, "/dest4");
}
 
@Before
public void setup() throws Exception {
	this.resolver = new PayloadMethodArgumentResolver(new StringMessageConverter(), testValidator());

	Method payloadMethod = PayloadMethodArgumentResolverTests.class.getDeclaredMethod(
			"handleMessage", String.class, String.class, Locale.class,
			String.class, String.class, String.class, String.class);

	this.paramAnnotated = new SynthesizingMethodParameter(payloadMethod, 0);
	this.paramAnnotatedNotRequired = new SynthesizingMethodParameter(payloadMethod, 1);
	this.paramAnnotatedRequired = new SynthesizingMethodParameter(payloadMethod, 2);
	this.paramWithSpelExpression = new SynthesizingMethodParameter(payloadMethod, 3);
	this.paramValidated = new SynthesizingMethodParameter(payloadMethod, 4);
	this.paramValidated.initParameterNameDiscovery(new LocalVariableTableParameterNameDiscoverer());
	this.paramValidatedNotAnnotated = new SynthesizingMethodParameter(payloadMethod, 5);
	this.paramNotAnnotated = new SynthesizingMethodParameter(payloadMethod, 6);
}
 
@Before
@SuppressWarnings("resource")
public void setup() throws Exception {
	AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
	context.refresh();

	ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
	this.resolver = new CookieValueMethodArgumentResolver(context.getBeanFactory(), adapterRegistry);
	this.bindingContext = new BindingContext();

	Method method = ReflectionUtils.findMethod(getClass(), "params", (Class<?>[]) null);
	this.cookieParameter = new SynthesizingMethodParameter(method, 0);
	this.cookieStringParameter = new SynthesizingMethodParameter(method, 1);
	this.stringParameter = new SynthesizingMethodParameter(method, 2);
	this.cookieMonoParameter = new SynthesizingMethodParameter(method, 3);
}
 
@Before
@SuppressWarnings("resource")
public void setup() throws Exception {
	AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
	context.refresh();
	ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
	this.resolver = new RequestHeaderMethodArgumentResolver(context.getBeanFactory(), adapterRegistry);

	ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer();
	initializer.setConversionService(new DefaultFormattingConversionService());
	this.bindingContext = new BindingContext(initializer);

	Method method = ReflectionUtils.findMethod(getClass(), "params", (Class<?>[]) null);
	this.paramNamedDefaultValueStringHeader = new SynthesizingMethodParameter(method, 0);
	this.paramNamedValueStringArray = new SynthesizingMethodParameter(method, 1);
	this.paramSystemProperty = new SynthesizingMethodParameter(method, 2);
	this.paramResolvedNameWithExpression = new SynthesizingMethodParameter(method, 3);
	this.paramResolvedNameWithPlaceholder = new SynthesizingMethodParameter(method, 4);
	this.paramNamedValueMap = new SynthesizingMethodParameter(method, 5);
	this.paramDate = new SynthesizingMethodParameter(method, 6);
	this.paramInstant = new SynthesizingMethodParameter(method, 7);
	this.paramMono = new SynthesizingMethodParameter(method, 8);
}
 
private static UriComponentsBuilder applyContributors(UriComponentsBuilder builder, Method method, Object... args) {
	CompositeUriComponentsContributor contributor = getUriComponentsContributor();

	int paramCount = method.getParameterCount();
	int argCount = args.length;
	if (paramCount != argCount) {
		throw new IllegalArgumentException("Number of method parameters " + paramCount +
				" does not match number of argument values " + argCount);
	}

	final Map<String, Object> uriVars = new HashMap<>();
	for (int i = 0; i < paramCount; i++) {
		MethodParameter param = new SynthesizingMethodParameter(method, i);
		param.initParameterNameDiscovery(parameterNameDiscoverer);
		contributor.contributeMethodArgument(param, args[i], builder, uriVars);
	}

	// This may not be all the URI variables, supply what we have so far..
	return builder.uriVariables(uriVars);
}
 
@Before
public void setup() throws Exception {
	this.request = new ServletWebRequest(new MockHttpServletRequest());
	this.container = new ModelAndViewContainer();
	this.processor = new ModelAttributeMethodProcessor(false);

	Method method = ModelAttributeHandler.class.getDeclaredMethod("modelAttribute",
			TestBean.class, Errors.class, int.class, TestBean.class,
			TestBean.class, TestBean.class);

	this.paramNamedValidModelAttr = new SynthesizingMethodParameter(method, 0);
	this.paramErrors = new SynthesizingMethodParameter(method, 1);
	this.paramInt = new SynthesizingMethodParameter(method, 2);
	this.paramModelAttr = new SynthesizingMethodParameter(method, 3);
	this.paramBindingDisabledAttr = new SynthesizingMethodParameter(method, 4);
	this.paramNonSimpleType = new SynthesizingMethodParameter(method, 5);

	method = getClass().getDeclaredMethod("annotatedReturnValue");
	this.returnParamNamedModelAttr = new MethodParameter(method, -1);

	method = getClass().getDeclaredMethod("notAnnotatedReturnValue");
	this.returnParamNonSimpleType = new MethodParameter(method, -1);
}
 
@Before
@SuppressWarnings("resource")
public void setup() throws Exception {
	GenericWebApplicationContext context = new GenericWebApplicationContext();
	context.refresh();
	resolver = new RequestHeaderMethodArgumentResolver(context.getBeanFactory());

	Method method = ReflectionUtils.findMethod(getClass(), "params", (Class<?>[]) null);
	paramNamedDefaultValueStringHeader = new SynthesizingMethodParameter(method, 0);
	paramNamedValueStringArray = new SynthesizingMethodParameter(method, 1);
	paramSystemProperty = new SynthesizingMethodParameter(method, 2);
	paramContextPath = new SynthesizingMethodParameter(method, 3);
	paramResolvedNameWithExpression = new SynthesizingMethodParameter(method, 4);
	paramResolvedNameWithPlaceholder = new SynthesizingMethodParameter(method, 5);
	paramNamedValueMap = new SynthesizingMethodParameter(method, 6);
	paramDate = new SynthesizingMethodParameter(method, 7);
	paramInstant = new SynthesizingMethodParameter(method, 8);

	servletRequest = new MockHttpServletRequest();
	webRequest = new ServletWebRequest(servletRequest, new MockHttpServletResponse());

	// Expose request to the current thread (for SpEL expressions)
	RequestContextHolder.setRequestAttributes(webRequest);
}
 
@Test // SPR-14238
public void sendToUserWithSendToOverride() throws Exception {
	given(this.messageChannel.send(any(Message.class))).willReturn(true);

	Class<?> clazz = SendToUserWithSendToOverrideTestBean.class;
	Method method = clazz.getDeclaredMethod("handleAndSendToOverride");
	MethodParameter parameter = new SynthesizingMethodParameter(method, -1);

	String sessionId = "sess1";
	Message<?> inputMessage = createMessage(sessionId, "sub1", null, null, null);
	this.handler.handleReturnValue(PAYLOAD, parameter, inputMessage);

	verify(this.messageChannel, times(2)).send(this.messageCaptor.capture());
	assertResponse(parameter, sessionId, 0, "/dest3");
	assertResponse(parameter, sessionId, 1, "/dest4");
}
 
@Before
public void setup() {
	@SuppressWarnings("resource")
	GenericApplicationContext cxt = new GenericApplicationContext();
	cxt.refresh();
	this.resolver = new HeaderMethodArgumentResolver(new DefaultConversionService(), cxt.getBeanFactory());

	Method method = ReflectionUtils.findMethod(getClass(), "handleMessage", (Class<?>[]) null);
	this.paramRequired = new SynthesizingMethodParameter(method, 0);
	this.paramNamedDefaultValueStringHeader = new SynthesizingMethodParameter(method, 1);
	this.paramSystemPropertyDefaultValue = new SynthesizingMethodParameter(method, 2);
	this.paramSystemPropertyName = new SynthesizingMethodParameter(method, 3);
	this.paramNotAnnotated = new SynthesizingMethodParameter(method, 4);
	this.paramOptional = new SynthesizingMethodParameter(method, 5);
	this.paramNativeHeader = new SynthesizingMethodParameter(method, 6);

	this.paramRequired.initParameterNameDiscovery(new DefaultParameterNameDiscoverer());
	GenericTypeResolver.resolveParameterType(this.paramRequired, HeaderMethodArgumentResolver.class);
}
 
@Before
public void setup() throws Exception {

	this.resolver = new PayloadArgumentResolver(new StringMessageConverter(), testValidator());

	Method payloadMethod = PayloadArgumentResolverTests.class.getDeclaredMethod(
			"handleMessage", String.class, String.class, Locale.class,
			String.class, String.class, String.class, String.class);

	this.paramAnnotated = new SynthesizingMethodParameter(payloadMethod, 0);
	this.paramAnnotatedNotRequired = new SynthesizingMethodParameter(payloadMethod, 1);
	this.paramAnnotatedRequired = new SynthesizingMethodParameter(payloadMethod, 2);
	this.paramWithSpelExpression = new SynthesizingMethodParameter(payloadMethod, 3);
	this.paramValidated = new SynthesizingMethodParameter(payloadMethod, 4);
	this.paramValidated.initParameterNameDiscovery(new LocalVariableTableParameterNameDiscoverer());
	this.paramValidatedNotAnnotated = new SynthesizingMethodParameter(payloadMethod, 5);
	this.paramNotAnnotated = new SynthesizingMethodParameter(payloadMethod, 6);
}
 
@Before
@SuppressWarnings("resource")
public void setup() throws Exception {
	AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
	context.refresh();

	ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
	this.resolver = new CookieValueMethodArgumentResolver(context.getBeanFactory(), adapterRegistry);
	this.bindingContext = new BindingContext();

	Method method = ReflectionUtils.findMethod(getClass(), "params", (Class<?>[]) null);
	this.cookieParameter = new SynthesizingMethodParameter(method, 0);
	this.cookieStringParameter = new SynthesizingMethodParameter(method, 1);
	this.stringParameter = new SynthesizingMethodParameter(method, 2);
	this.cookieMonoParameter = new SynthesizingMethodParameter(method, 3);
}
 
@Before
@SuppressWarnings("resource")
public void setup() throws Exception {
	AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
	context.refresh();
	ReactiveAdapterRegistry adapterRegistry = ReactiveAdapterRegistry.getSharedInstance();
	this.resolver = new RequestHeaderMethodArgumentResolver(context.getBeanFactory(), adapterRegistry);

	ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer();
	initializer.setConversionService(new DefaultFormattingConversionService());
	this.bindingContext = new BindingContext(initializer);

	Method method = ReflectionUtils.findMethod(getClass(), "params", (Class<?>[]) null);
	this.paramNamedDefaultValueStringHeader = new SynthesizingMethodParameter(method, 0);
	this.paramNamedValueStringArray = new SynthesizingMethodParameter(method, 1);
	this.paramSystemProperty = new SynthesizingMethodParameter(method, 2);
	this.paramResolvedNameWithExpression = new SynthesizingMethodParameter(method, 3);
	this.paramResolvedNameWithPlaceholder = new SynthesizingMethodParameter(method, 4);
	this.paramNamedValueMap = new SynthesizingMethodParameter(method, 5);
	this.paramDate = new SynthesizingMethodParameter(method, 6);
	this.paramInstant = new SynthesizingMethodParameter(method, 7);
	this.paramMono = new SynthesizingMethodParameter(method, 8);
}
 
private static UriComponentsBuilder applyContributors(UriComponentsBuilder builder, Method method, Object... args) {
	CompositeUriComponentsContributor contributor = getUriComponentsContributor();

	int paramCount = method.getParameterCount();
	int argCount = args.length;
	if (paramCount != argCount) {
		throw new IllegalArgumentException("Number of method parameters " + paramCount +
				" does not match number of argument values " + argCount);
	}

	final Map<String, Object> uriVars = new HashMap<>();
	for (int i = 0; i < paramCount; i++) {
		MethodParameter param = new SynthesizingMethodParameter(method, i);
		param.initParameterNameDiscovery(parameterNameDiscoverer);
		contributor.contributeMethodArgument(param, args[i], builder, uriVars);
	}

	// This may not be all the URI variables, supply what we have so far..
	return builder.uriVariables(uriVars);
}
 
@Before
public void setup() throws Exception {
	this.request = new ServletWebRequest(new MockHttpServletRequest());
	this.container = new ModelAndViewContainer();
	this.processor = new ModelAttributeMethodProcessor(false);

	Method method = ModelAttributeHandler.class.getDeclaredMethod("modelAttribute",
			TestBean.class, Errors.class, int.class, TestBean.class,
			TestBean.class, TestBean.class);

	this.paramNamedValidModelAttr = new SynthesizingMethodParameter(method, 0);
	this.paramErrors = new SynthesizingMethodParameter(method, 1);
	this.paramInt = new SynthesizingMethodParameter(method, 2);
	this.paramModelAttr = new SynthesizingMethodParameter(method, 3);
	this.paramBindingDisabledAttr = new SynthesizingMethodParameter(method, 4);
	this.paramNonSimpleType = new SynthesizingMethodParameter(method, 5);

	method = getClass().getDeclaredMethod("annotatedReturnValue");
	this.returnParamNamedModelAttr = new MethodParameter(method, -1);

	method = getClass().getDeclaredMethod("notAnnotatedReturnValue");
	this.returnParamNonSimpleType = new MethodParameter(method, -1);
}
 
@Before
@SuppressWarnings("resource")
public void setup() throws Exception {
	GenericWebApplicationContext context = new GenericWebApplicationContext();
	context.refresh();
	resolver = new RequestHeaderMethodArgumentResolver(context.getBeanFactory());

	Method method = ReflectionUtils.findMethod(getClass(), "params", (Class<?>[]) null);
	paramNamedDefaultValueStringHeader = new SynthesizingMethodParameter(method, 0);
	paramNamedValueStringArray = new SynthesizingMethodParameter(method, 1);
	paramSystemProperty = new SynthesizingMethodParameter(method, 2);
	paramContextPath = new SynthesizingMethodParameter(method, 3);
	paramResolvedNameWithExpression = new SynthesizingMethodParameter(method, 4);
	paramResolvedNameWithPlaceholder = new SynthesizingMethodParameter(method, 5);
	paramNamedValueMap = new SynthesizingMethodParameter(method, 6);
	paramDate = new SynthesizingMethodParameter(method, 7);
	paramInstant = new SynthesizingMethodParameter(method, 8);

	servletRequest = new MockHttpServletRequest();
	webRequest = new ServletWebRequest(servletRequest, new MockHttpServletResponse());

	// Expose request to the current thread (for SpEL expressions)
	RequestContextHolder.setRequestAttributes(webRequest);
}
 
/**
 * Resolves the arguments for the given method. Delegates to {@link #resolveCommonArgument}.
 */
private Object[] resolveHandlerArguments(Method handlerMethod, Object handler,
		NativeWebRequest webRequest, Exception thrownException) throws Exception {

	Class<?>[] paramTypes = handlerMethod.getParameterTypes();
	Object[] args = new Object[paramTypes.length];
	Class<?> handlerType = handler.getClass();
	for (int i = 0; i < args.length; i++) {
		MethodParameter methodParam = new SynthesizingMethodParameter(handlerMethod, i);
		GenericTypeResolver.resolveParameterType(methodParam, handlerType);
		Class<?> paramType = methodParam.getParameterType();
		Object argValue = resolveCommonArgument(methodParam, webRequest, thrownException);
		if (argValue != WebArgumentResolver.UNRESOLVED) {
			args[i] = argValue;
		}
		else {
			throw new IllegalStateException("Unsupported argument [" + paramType.getName() +
					"] for @ExceptionHandler method: " + handlerMethod);
		}
	}
	return args;
}
 
源代码17 项目: FastBootWeixin   文件: WxApiMethodInfo.java
private UriComponents applyContributors(UriComponentsBuilder builder, Method method, Object... args) {
    CompositeUriComponentsContributor contributor = defaultUriComponentsContributor;
    int paramCount = method.getParameterTypes().length;
    int argCount = args.length;
    if (paramCount != argCount) {
        throw new IllegalArgumentException("方法参数量为" + paramCount + " 与真实参数量不匹配,真实参数量为" + argCount);
    }
    final Map<String, Object> uriVars = new HashMap<>(8);
    for (int i = 0; i < paramCount; i++) {
        MethodParameter param = new SynthesizingMethodParameter(method, i);
        param.initParameterNameDiscovery(parameterNameDiscoverer);
        contributor.contributeMethodArgument(param, args[i], builder, uriVars);
    }
    // We may not have all URI var values, expand only what we have
    return builder.build().expand(name -> uriVars.containsKey(name) ? uriVars.get(name) : UriComponents.UriTemplateVariables.SKIP_VALUE);
}
 
@Before
public void setup() throws Exception {
	@SuppressWarnings("resource")
	GenericApplicationContext cxt = new GenericApplicationContext();
	cxt.refresh();
	this.resolver = new HeaderMethodArgumentResolver(new DefaultConversionService(), cxt.getBeanFactory());

	Method method = getClass().getDeclaredMethod("handleMessage",
			String.class, String.class, String.class, String.class, String.class);
	this.paramRequired = new SynthesizingMethodParameter(method, 0);
	this.paramNamedDefaultValueStringHeader = new SynthesizingMethodParameter(method, 1);
	this.paramSystemProperty = new SynthesizingMethodParameter(method, 2);
	this.paramNotAnnotated = new SynthesizingMethodParameter(method, 3);
	this.paramNativeHeader = new SynthesizingMethodParameter(method, 4);

	this.paramRequired.initParameterNameDiscovery(new DefaultParameterNameDiscoverer());
	GenericTypeResolver.resolveParameterType(this.paramRequired, HeaderMethodArgumentResolver.class);
}
 
/**
 * Resolves the arguments for the given method. Delegates to {@link #resolveCommonArgument}.
 */
private Object[] resolveHandlerArguments(Method handlerMethod, Object handler,
		NativeWebRequest webRequest, Exception thrownException) throws Exception {

	Class<?>[] paramTypes = handlerMethod.getParameterTypes();
	Object[] args = new Object[paramTypes.length];
	Class<?> handlerType = handler.getClass();
	for (int i = 0; i < args.length; i++) {
		MethodParameter methodParam = new SynthesizingMethodParameter(handlerMethod, i);
		GenericTypeResolver.resolveParameterType(methodParam, handlerType);
		Class<?> paramType = methodParam.getParameterType();
		Object argValue = resolveCommonArgument(methodParam, webRequest, thrownException);
		if (argValue != WebArgumentResolver.UNRESOLVED) {
			args[i] = argValue;
		}
		else {
			throw new IllegalStateException("Unsupported argument [" + paramType.getName() +
					"] for @ExceptionHandler method: " + handlerMethod);
		}
	}
	return args;
}
 
/**
 * Resolves the arguments for the given method. Delegates to {@link #resolveCommonArgument}.
 */
private Object[] resolveHandlerArguments(Method handlerMethod, Object handler,
		NativeWebRequest webRequest, Exception thrownException) throws Exception {

	Class<?>[] paramTypes = handlerMethod.getParameterTypes();
	Object[] args = new Object[paramTypes.length];
	Class<?> handlerType = handler.getClass();
	for (int i = 0; i < args.length; i++) {
		MethodParameter methodParam = new SynthesizingMethodParameter(handlerMethod, i);
		GenericTypeResolver.resolveParameterType(methodParam, handlerType);
		Class<?> paramType = methodParam.getParameterType();
		Object argValue = resolveCommonArgument(methodParam, webRequest, thrownException);
		if (argValue != WebArgumentResolver.UNRESOLVED) {
			args[i] = argValue;
		}
		else {
			throw new IllegalStateException("Unsupported argument [" + paramType.getName() +
					"] for @ExceptionHandler method: " + handlerMethod);
		}
	}
	return args;
}
 
@Before
public void setUp() throws Exception {
	this.resolver = new MatrixVariableMapMethodArgumentResolver();

	Method method = getClass().getMethod("handle", String.class,
			Map.class, MultiValueMap.class, MultiValueMap.class, Map.class);

	this.paramString = new SynthesizingMethodParameter(method, 0);
	this.paramMap = new SynthesizingMethodParameter(method, 1);
	this.paramMultivalueMap = new SynthesizingMethodParameter(method, 2);
	this.paramMapForPathVar = new SynthesizingMethodParameter(method, 3);
	this.paramMapWithName = new SynthesizingMethodParameter(method, 4);

	this.mavContainer = new ModelAndViewContainer();
	this.request = new MockHttpServletRequest();
	this.webRequest = new ServletWebRequest(request, new MockHttpServletResponse());

	Map<String, MultiValueMap<String, String>> params = new LinkedHashMap<String, MultiValueMap<String, String>>();
	this.request.setAttribute(HandlerMapping.MATRIX_VARIABLES_ATTRIBUTE, params);
}
 
@Before
@SuppressWarnings("resource")
public void setUp() throws Exception {
	GenericWebApplicationContext context = new GenericWebApplicationContext();
	context.refresh();
	resolver = new RequestHeaderMethodArgumentResolver(context.getBeanFactory());

	Method method = getClass().getMethod("params", String.class, String[].class, String.class, String.class, Map.class);
	paramNamedDefaultValueStringHeader = new SynthesizingMethodParameter(method, 0);
	paramNamedValueStringArray = new SynthesizingMethodParameter(method, 1);
	paramSystemProperty = new SynthesizingMethodParameter(method, 2);
	paramContextPath = new SynthesizingMethodParameter(method, 3);
	paramNamedValueMap = new SynthesizingMethodParameter(method, 4);

	servletRequest = new MockHttpServletRequest();
	webRequest = new ServletWebRequest(servletRequest, new MockHttpServletResponse());

	// Expose request to the current thread (for SpEL expressions)
	RequestContextHolder.setRequestAttributes(webRequest);
}
 
private static MethodParameter param(Class<?> clazz, String methodName) {
	try {
		return new SynthesizingMethodParameter(clazz.getDeclaredMethod(methodName), -1);
	}
	catch (NoSuchMethodException ex) {
		throw new IllegalArgumentException("No such method", ex);
	}
}
 
@Test // SPR-14238
public void sendToUserWithSendToDefaultOverride() throws Exception {
	given(this.messageChannel.send(any(Message.class))).willReturn(true);

	Class<?> clazz = SendToUserWithSendToOverrideTestBean.class;
	Method method = clazz.getDeclaredMethod("handleAndSendToDefaultDestination");
	MethodParameter parameter = new SynthesizingMethodParameter(method, -1);

	String sessionId = "sess1";
	Message<?> inputMessage = createMessage(sessionId, "sub1", null, null, null);
	this.handler.handleReturnValue(PAYLOAD, parameter, inputMessage);

	verify(this.messageChannel, times(1)).send(this.messageCaptor.capture());
	assertResponse(parameter, sessionId, 0, "/user/sess1/dest-default");
}
 
源代码25 项目: spring-analysis-note   文件: ResolvableMethod.java
private List<MethodParameter> applyFilters() {
	List<MethodParameter> matches = new ArrayList<>();
	for (int i = 0; i < method.getParameterCount(); i++) {
		MethodParameter param = new SynthesizingMethodParameter(method, i);
		param.initParameterNameDiscovery(nameDiscoverer);
		if (this.filters.stream().allMatch(p -> p.test(param))) {
			matches.add(param);
		}
	}
	return matches;
}
 
@Before
public void setup() throws Exception {
	this.resolver = new PathVariableMethodArgumentResolver(null, ReactiveAdapterRegistry.getSharedInstance());

	Method method = ReflectionUtils.findMethod(getClass(), "handle", (Class<?>[]) null);
	paramNamedString = new SynthesizingMethodParameter(method, 0);
	paramString = new SynthesizingMethodParameter(method, 1);
	paramNotRequired = new SynthesizingMethodParameter(method, 2);
	paramOptional = new SynthesizingMethodParameter(method, 3);
	paramMono = new SynthesizingMethodParameter(method, 4);
}
 
@Before
public void setup() throws Exception {
	resolver = new ServletCookieValueMethodArgumentResolver(null);
	request = new MockHttpServletRequest();
	webRequest = new ServletWebRequest(request, new MockHttpServletResponse());

	Method method = getClass().getMethod("params", Cookie.class, String.class);
	cookieParameter = new SynthesizingMethodParameter(method, 0);
	cookieStringParameter = new SynthesizingMethodParameter(method, 1);
}
 
@Before
public void setup() throws Exception {
	resolver = new PathVariableMethodArgumentResolver();
	mavContainer = new ModelAndViewContainer();
	request = new MockHttpServletRequest();
	webRequest = new ServletWebRequest(request, new MockHttpServletResponse());

	Method method = ReflectionUtils.findMethod(getClass(), "handle", (Class<?>[]) null);
	paramNamedString = new SynthesizingMethodParameter(method, 0);
	paramString = new SynthesizingMethodParameter(method, 1);
	paramNotRequired = new SynthesizingMethodParameter(method, 2);
	paramOptional = new SynthesizingMethodParameter(method, 3);
}
 
@Before
public void setUp() throws Exception {
	resolver = new TestCookieValueMethodArgumentResolver();

	Method method = getClass().getMethod("params", Cookie.class, String.class, String.class);
	paramNamedCookie = new SynthesizingMethodParameter(method, 0);
	paramNamedDefaultValueString = new SynthesizingMethodParameter(method, 1);
	paramString = new SynthesizingMethodParameter(method, 2);

	request = new MockHttpServletRequest();
	webRequest = new ServletWebRequest(request, new MockHttpServletResponse());
}
 
@Before
public void setup() throws Exception {
	resolver = new RequestHeaderMapMethodArgumentResolver();

	Method method = getClass().getMethod("params", Map.class, MultiValueMap.class, HttpHeaders.class, Map.class);
	paramMap = new SynthesizingMethodParameter(method, 0);
	paramMultiValueMap = new SynthesizingMethodParameter(method, 1);
	paramHttpHeaders = new SynthesizingMethodParameter(method, 2);
	paramUnsupported = new SynthesizingMethodParameter(method, 3);

	request = new MockHttpServletRequest();
	webRequest = new ServletWebRequest(request, new MockHttpServletResponse());
}
 
 类所在包
 类方法
 同包方法