List of usage examples for org.springframework.web.servlet.mvc.method.annotation RequestMappingHandlerAdapter getArgumentResolvers
@Nullable
public List<HandlerMethodArgumentResolver> getArgumentResolvers()
From source file:org.springframework.hateoas.config.EnableHypermediaSupportIntegrationTest.java
/** * @see #134, #219/*from www. j a v a2s .co m*/ */ @Test @SuppressWarnings("unchecked") public void halSetupIsAppliedToAllTransitiveComponentsInRequestMappingHandlerAdapter() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(HalConfig.class); Jackson2ModuleRegisteringBeanPostProcessor postProcessor = new HypermediaSupportBeanDefinitionRegistrar.Jackson2ModuleRegisteringBeanPostProcessor(); postProcessor.setBeanFactory(context); RequestMappingHandlerAdapter adapter = context.getBean(RequestMappingHandlerAdapter.class); assertThat(adapter.getMessageConverters().get(0).getSupportedMediaTypes(), hasItem(MediaTypes.HAL_JSON)); boolean found = false; for (HandlerMethodArgumentResolver resolver : adapter.getArgumentResolvers().getResolvers()) { if (resolver instanceof AbstractMessageConverterMethodArgumentResolver) { found = true; AbstractMessageConverterMethodArgumentResolver processor = (AbstractMessageConverterMethodArgumentResolver) resolver; List<HttpMessageConverter<?>> converters = (List<HttpMessageConverter<?>>) ReflectionTestUtils .getField(processor, "messageConverters"); // assertThat(converters.get(0), // is(instanceOf(TypeConstrainedMappingJackson2HttpMessageConverter.class))); assertThat(converters.get(0), is(instanceOf(MappingJackson2HttpMessageConverter.class))); assertThat(converters.get(0).getSupportedMediaTypes(), hasItem(MediaTypes.HAL_JSON)); } } assertThat(found, is(true)); }
From source file:io.neba.core.mvc.MvcContext.java
/** * Registers the custom argument resolvers if a {@link RequestMappingHandlerAdapter} * is present in the factory.//from w w w.ja va 2 s .c o m */ private void registerCustomArgumentResolvers() { RequestMappingHandlerAdapter requestMappingHandlerAdapter = this.factory .getBean(RequestMappingHandlerAdapter.class); if (requestMappingHandlerAdapter != null) { HandlerMethodArgumentResolverComposite argumentResolvers = requestMappingHandlerAdapter .getArgumentResolvers(); if (argumentResolvers == null) { throw new IllegalStateException("No argument resolvers found in " + requestMappingHandlerAdapter + ". It appears the handler was not initialized by the application context."); } // Add Sling-specific argument resolvers first List<HandlerMethodArgumentResolver> resolvers = new LinkedList<HandlerMethodArgumentResolver>(); resolvers.add(new RequestPathInfoArgumentResolver()); resolvers.add(new ResourceResolverArgumentResolver()); resolvers.add(new ResourceParamArgumentResolver()); // Subsequently add all existing argument resolvers (they are order-sensitive, ending with a catch-all resolver, // thus the custom resolvers have to go first) resolvers.addAll(argumentResolvers.getResolvers()); requestMappingHandlerAdapter.setArgumentResolvers(resolvers); } }