zoukankan      html  css  js  c++  java
  • spring 添加controller返回值绑定

    @EnableWebMvc
    @Configuration
    public class Config {
    
        @Autowired
        private RequestMappingHandlerAdapter handlerAdapter;
    
        @PostConstruct
        public void init() {
            List<HandlerMethodReturnValueHandler> handlers = new ArrayList<>(handlerAdapter.getReturnValueHandlers());
            List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
            messageConverters.add(new MappingJackson2HttpMessageConverter());
            handlers.add(0, new ResultResponseHandlerMethodProcessor(messageConverters));
            handlerAdapter.setReturnValueHandlers(handlers);
    
            handlerAdapter.getCustomReturnValueHandlers().add(0, new ResultResponseHandlerMethodProcessor(messageConverters));
    
            handlerAdapter.afterPropertiesSet();
        }
    
    }
    
    public class ResultResponseHandlerMethodProcessor extends RequestResponseBodyMethodProcessor {
    
        public ResultResponseHandlerMethodProcessor(List<HttpMessageConverter<?>> messageConverters) {
            super(messageConverters);
        }
    
        public ResultResponseHandlerMethodProcessor(List<HttpMessageConverter<?>> messageConverters, ContentNegotiationManager contentNegotiationManager) {
            super(messageConverters, contentNegotiationManager);
        }
    
        @Override
        public boolean supportsReturnType(final MethodParameter returnType) {
            return returnType.getParameterType() == ResponseResult.class;
        }
    
        @Override
        public void handleReturnValue(final Object returnValue, final MethodParameter returnType, final ModelAndViewContainer mavContainer, final NativeWebRequest webRequest) throws IOException, HttpMediaTypeNotAcceptableException {
            super.handleReturnValue(returnValue, returnType, mavContainer, webRequest);
        }
    
    }
    
    spring相关核心类:
    
    org.springframework.context.support.AbstractApplicationContext#finishBeanFactoryInitialization
    
    org.springframework.beans.factory.support.DefaultListableBeanFactory#preInstantiateSingletons
    
    org.springframework.context.support.AbstractApplicationContext#refresh
    
    mvcUriComponentsContributor
    
    spring bean容器
    org.springframework.context.annotation.CommonAnnotationBeanPostProcessor#injectionMetadataCache
    
    
    org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser.CompositeUriComponentsContributorFactoryBean
    

      

  • 相关阅读:
    自动化测试基础篇--Selenium iframe定位问题
    自动化测试基础篇--Selenium简单的163邮箱登录实例
    自动化测试基础篇--Selenium浏览器操作
    自动化测试基础篇--Selenium Xpath定位
    自动化测试基础篇--Selenium元素定位
    自动化测试基础篇--Selenium简介
    selenium RC 环境配置
    正则表达式练习题2
    正则表达式题
    haproxy安装
  • 原文地址:https://www.cnblogs.com/ThinkVenus/p/9198058.html
Copyright © 2011-2022 走看看