Java 类org.springframework.web.servlet.mvc.method.annotation.ServletWebArgumentResolverAdapter 实例源码

项目:spring4-understanding    文件:AnnotationDrivenBeanDefinitionParser.java   
private ManagedList<Object> wrapLegacyResolvers(List<Object> list, ParserContext context) {
    ManagedList<Object> result = new ManagedList<Object>();
    for (Object object : list) {
        if (object instanceof BeanDefinitionHolder) {
            BeanDefinitionHolder beanDef = (BeanDefinitionHolder) object;
            String className = beanDef.getBeanDefinition().getBeanClassName();
            Class<?> clazz = ClassUtils.resolveClassName(className, context.getReaderContext().getBeanClassLoader());
            if (WebArgumentResolver.class.isAssignableFrom(clazz)) {
                RootBeanDefinition adapter = new RootBeanDefinition(ServletWebArgumentResolverAdapter.class);
                adapter.getConstructorArgumentValues().addIndexedArgumentValue(0, beanDef);
                result.add(new BeanDefinitionHolder(adapter, beanDef.getBeanName() + "Adapter"));
                continue;
            }
        }
        result.add(object);
    }
    return result;
}
项目:spring4-understanding    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@SuppressWarnings("unchecked")
@Test
public void testArgumentResolvers() {
    loadBeanDefinitions("mvc-config-argument-resolvers.xml");
    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);
    Object value = new DirectFieldAccessor(adapter).getPropertyValue("customArgumentResolvers");
    assertNotNull(value);
    assertTrue(value instanceof List);
    List<HandlerMethodArgumentResolver> resolvers = (List<HandlerMethodArgumentResolver>) value;
    assertEquals(3, resolvers.size());
    assertTrue(resolvers.get(0) instanceof ServletWebArgumentResolverAdapter);
    assertTrue(resolvers.get(1) instanceof TestHandlerMethodArgumentResolver);
    assertTrue(resolvers.get(2) instanceof TestHandlerMethodArgumentResolver);
    assertNotSame(resolvers.get(1), resolvers.get(2));
}
项目:class-guard    文件:AnnotationDrivenBeanDefinitionParser.java   
private ManagedList<BeanDefinitionHolder> wrapWebArgumentResolverBeanDefs(
        List<BeanDefinitionHolder> beanDefs, ParserContext parserContext) {

    ManagedList<BeanDefinitionHolder> result = new ManagedList<BeanDefinitionHolder>();
    for (BeanDefinitionHolder beanDef : beanDefs) {
        String className = beanDef.getBeanDefinition().getBeanClassName();
        Class<?> clazz = ClassUtils.resolveClassName(className, parserContext.getReaderContext().getBeanClassLoader());
        if (WebArgumentResolver.class.isAssignableFrom(clazz)) {
            RootBeanDefinition adapter = new RootBeanDefinition(ServletWebArgumentResolverAdapter.class);
            adapter.getConstructorArgumentValues().addIndexedArgumentValue(0, beanDef);
            result.add(new BeanDefinitionHolder(adapter, beanDef.getBeanName() + "Adapter"));
        }
        else {
            result.add(beanDef);
        }
    }
    return result;
}
项目:class-guard    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@SuppressWarnings("unchecked")
@Test
public void testArgumentResolvers() {
    loadBeanDefinitions("mvc-config-argument-resolvers.xml");
    RequestMappingHandlerAdapter adapter = appContext.getBean(RequestMappingHandlerAdapter.class);
    assertNotNull(adapter);
    Object value = new DirectFieldAccessor(adapter).getPropertyValue("customArgumentResolvers");
    assertNotNull(value);
    assertTrue(value instanceof List);
    List<HandlerMethodArgumentResolver> resolvers = (List<HandlerMethodArgumentResolver>) value;
    assertEquals(2, resolvers.size());
    assertTrue(resolvers.get(0) instanceof ServletWebArgumentResolverAdapter);
    assertTrue(resolvers.get(1) instanceof TestHandlerMethodArgumentResolver);
}
项目:springmvc-uadetector    文件:UADetectorConfiguration.java   
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
    argumentResolvers.add(new ServletWebArgumentResolverAdapter(readableUserAgentResolver()));
    argumentResolvers.add(new ServletWebArgumentResolverAdapter(browserResolver()));
}
项目:jakduk-api    文件:TestMvcConfig.java   
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
    argumentResolvers.add(new ServletWebArgumentResolverAdapter(new DeviceWebArgumentResolver()));
    super.addArgumentResolvers(argumentResolvers);
}