类org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor源码实例Demo

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

源代码1 项目: bdf3   文件: ColaConfiguration.java
@SuppressWarnings("unchecked")
@Override
public void afterPropertiesSet() throws Exception {
	if (adapter != null) {
		Field field = ReflectionUtils.findField(RequestMappingHandlerAdapter.class, "contentNegotiationManager");
		field.setAccessible(true);
		ContentNegotiationManager contentNegotiationManager = (org.springframework.web.accept.ContentNegotiationManager) field.get(adapter);
		field = ReflectionUtils.findField(RequestMappingHandlerAdapter.class, "requestResponseBodyAdvice");
		field.setAccessible(true);
		List<Object> requestResponseBodyAdvice = (List<Object>) field.get(adapter);
		
		List<HandlerMethodReturnValueHandler> handlers = adapter.getReturnValueHandlers();
		List<HandlerMethodReturnValueHandler> result = new ArrayList<HandlerMethodReturnValueHandler>();
		for (HandlerMethodReturnValueHandler handler : handlers) {
			if (handler instanceof RequestResponseBodyMethodProcessor) {
				result.add(new RequestResponseBodyMethodProcessorAdapter(adapter.getMessageConverters(), contentNegotiationManager, requestResponseBodyAdvice));
			} else {
				result.add(handler);
			}
		}
		adapter.setReturnValueHandlers(result);
	}
}
 
源代码2 项目: RCT   文件: ResponseConfig.java
private void decorateHandlers(List<HandlerMethodReturnValueHandler> handlers) {

			for (HandlerMethodReturnValueHandler handler : handlers) {
				if (handler instanceof RequestResponseBodyMethodProcessor) {
					ResponseBodyWrapHandler decorator = new ResponseBodyWrapHandler(handler);
					int index = handlers.indexOf(handler);
					handlers.set(index, decorator);
					break;
				}
			}

		}
 
源代码3 项目: spring-cloud-gateway   文件: ProxyExchange.java
public ProxyExchange(RestTemplate rest, NativeWebRequest webRequest,
		ModelAndViewContainer mavContainer, WebDataBinderFactory binderFactory,
		Type type) {
	this.responseType = type;
	this.rest = rest;
	this.webRequest = webRequest;
	this.mavContainer = mavContainer;
	this.binderFactory = binderFactory;
	this.delegate = new RequestResponseBodyMethodProcessor(
			rest.getMessageConverters());
}
 
源代码4 项目: json-view   文件: JsonViewSupportFactoryBean.java
protected void decorateHandlers(List<HandlerMethodReturnValueHandler> handlers) {
  List<HttpMessageConverter<?>> converters = new ArrayList<>(adapter.getMessageConverters());
  converters.add(converter);
  for(HandlerMethodReturnValueHandler handler : handlers) {
    int index = handlers.indexOf(handler);
    if(handler instanceof HttpEntityMethodProcessor) {
      handlers.set(index, new JsonViewHttpEntityMethodProcessor(converters));
    } else if(handler instanceof RequestResponseBodyMethodProcessor) {
      handlers.set(index, new JsonViewReturnValueHandler(converters, defaultView));
      break;
    }
  }
}
 
源代码5 项目: EasyReport   文件: ResponseBodyWrapFactoryBean.java
private void decorateHandlers(List<HandlerMethodReturnValueHandler> handlers) {
    for (HandlerMethodReturnValueHandler handler : handlers) {
        if (handler instanceof RequestResponseBodyMethodProcessor) {
            //用自己的ResponseBody包装类替换掉框架的
            //达到返回Result的效果
            ResponseBodyWrapHandler decorator = new ResponseBodyWrapHandler(handler, basePackage);
            int index = handlers.indexOf(handler);
            handlers.set(index, decorator);
            break;
        }
    }
}
 
@Override
public void addReturnValueHandlers(final List<HandlerMethodReturnValueHandler> returnValueHandlers) {
    List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
    messageConverters.add(new MappingJackson2HttpMessageConverter());
    returnValueHandlers.add(new RequestResponseBodyMethodProcessor(messageConverters));
}
 
@Override
public void addReturnValueHandlers(final List<HandlerMethodReturnValueHandler> returnValueHandlers) {
    List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
    messageConverters.add(new MappingJackson2HttpMessageConverter());
    returnValueHandlers.add(new RequestResponseBodyMethodProcessor(messageConverters));
}
 
@PostConstruct
public void init(){
    List<HttpMessageConverter<?>> converters = new ArrayList<>();
    converters.add(jsonMessageConverter);
    processor = new RequestResponseBodyMethodProcessor(converters);
}
 
源代码9 项目: rice   文件: UifRequestMappingHandlerAdapter.java
/**
 * Return the list of argument resolvers to use including built-in resolvers
 * and custom resolvers provided via {@link #setCustomArgumentResolvers}.
 */
protected List<HandlerMethodArgumentResolver> getUifArgumentResolvers() {
    List<HandlerMethodArgumentResolver> resolvers = new ArrayList<HandlerMethodArgumentResolver>();

    resolvers.add(new UifDefaultFormMethodArgumentResolver());

    // Annotation-based argument resolution
    resolvers.add(new RequestParamMethodArgumentResolver(getBeanFactory(), false));
    resolvers.add(new RequestParamMapMethodArgumentResolver());
    resolvers.add(new PathVariableMethodArgumentResolver());
    resolvers.add(new PathVariableMapMethodArgumentResolver());
    resolvers.add(new MatrixVariableMethodArgumentResolver());
    resolvers.add(new MatrixVariableMapMethodArgumentResolver());
    resolvers.add(new ServletModelAttributeMethodProcessor(false));
    resolvers.add(new RequestResponseBodyMethodProcessor(getMessageConverters()));
    resolvers.add(new RequestPartMethodArgumentResolver(getMessageConverters()));
    resolvers.add(new RequestHeaderMethodArgumentResolver(getBeanFactory()));
    resolvers.add(new RequestHeaderMapMethodArgumentResolver());
    resolvers.add(new ServletCookieValueMethodArgumentResolver(getBeanFactory()));
    resolvers.add(new ExpressionValueMethodArgumentResolver(getBeanFactory()));

    // Type-based argument resolution
    resolvers.add(new ServletRequestMethodArgumentResolver());
    resolvers.add(new ServletResponseMethodArgumentResolver());
    resolvers.add(new HttpEntityMethodProcessor(getMessageConverters()));
    resolvers.add(new RedirectAttributesMethodArgumentResolver());
    resolvers.add(new ModelMethodProcessor());
    resolvers.add(new MapMethodProcessor());
    resolvers.add(new ErrorsMethodArgumentResolver());
    resolvers.add(new SessionStatusMethodArgumentResolver());
    resolvers.add(new UriComponentsBuilderMethodArgumentResolver());

    // Custom arguments
    if (getCustomArgumentResolvers() != null) {
        resolvers.addAll(getCustomArgumentResolvers());
    }

    // Catch-all
    resolvers.add(new RequestParamMethodArgumentResolver(getBeanFactory(), true));
    resolvers.add(new ServletModelAttributeMethodProcessor(true));

    return resolvers;
}
 
 同包方法