栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring MVC:用于包装API响应的适当扩展点

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring MVC:用于包装API响应的适当扩展点

这是我使用的实现:

public class metadataInjectingReturnValueHandler implements HandlerMethodReturnValueHandler {    private final HandlerMethodReturnValueHandler delegate;    public metadataInjectingReturnValueHandler(HandlerMethodReturnValueHandler delegate)    {        this.delegate = delegate;    }    @Override    public boolean supportsReturnType(MethodParameter returnType) {        return delegate.supportsReturnType(returnType);    }    @Override    public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception {        returnValue = wrapResult(returnValue); //Omitted        delegate.handleReturnValue(returnValue, returnType, mavContainer, webRequest);    }}@Componentpublic class metadataInjectionFactoryBean implements InitializingBean {    @Autowired    private RequestMappingHandlerAdapter adapter;    @Override    public void afterPropertiesSet() throws Exception {        HandlerMethodReturnValueHandlerComposite returnValueHandlers = adapter.getReturnValueHandlers();        List<HandlerMethodReturnValueHandler> handlers = Lists.newArrayList(returnValueHandlers.getHandlers());        decorateHandlers(handlers);        adapter.setReturnValueHandlers(handlers);    }    private void decorateHandlers(List<HandlerMethodReturnValueHandler> handlers) {        for (HandlerMethodReturnValueHandler handler : handlers) { if (handler instanceof RequestResponseBodyMethodProcessor) {     metadataInjectingReturnValueHandler decorator = new metadataInjectingReturnValueHandler(handler);     int index = handlers.indexOf(handler);     handlers.set(index, decorator);     log.info("metadata Injecting decorator wired up");     break; }        }}}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/615799.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号