当前位置: 首页 > news >正文

做网站是什么课百度联盟是什么

做网站是什么课,百度联盟是什么,wordpress人型图标,产品推广营销方案1.返回值解析器介绍 返回值解析器用于解析Hanlder执行方法后的返回结果,例如将方法上标注有@ResponseBody注解的返回值解析成JSON、将方法返回的字符串作为视图名等 SpringMVC中默认的返回值解析器见RequestMappingHandlerAdapter#getDefaultReturnValueHandlers private L…

1.返回值解析器介绍

返回值解析器用于解析Hanlder执行方法后的返回结果,例如将方法上标注有@ResponseBody注解的返回值解析成JSON、将方法返回的字符串作为视图名等

SpringMVC中默认的返回值解析器见RequestMappingHandlerAdapter#getDefaultReturnValueHandlers

private List<HandlerMethodReturnValueHandler> getDefaultReturnValueHandlers() {List<HandlerMethodReturnValueHandler> handlers = new ArrayList<>(20);handlers.add(new ModelAndViewMethodReturnValueHandler());handlers.add(new ModelMethodProcessor());handlers.add(new ViewMethodReturnValueHandler());handlers.add(new ResponseBodyEmitterReturnValueHandler(getMessageConverters(),this.reactiveAdapterRegistry, this.taskExecutor, this.contentNegotiationManager));handlers.add(new StreamingResponseBodyReturnValueHandler());handlers.add(new HttpEntityMethodProcessor(getMessageConverters(),this.contentNegotiationManager, this.requestResponseBodyAdvice));handlers.add(new HttpHeadersReturnValueHandler());handlers.add(new CallableMethodReturnValueHandler());handlers.add(new DeferredResultMethodReturnValueHandler());handlers.add(new AsyncTaskMethodReturnValueHandler(this.beanFactory));handlers.add(new ModelAttributeMethodProcessor(false));handlers.add(new RequestResponseBodyMethodProcessor(getMessageConverters(),this.contentNegotiationManager, this.requestResponseBodyAdvice));handlers.add(new ViewNameMethodReturnValueHandler());handlers.add(new MapMethodProcessor());// 添加自定义的返回值解析器if (getCustomReturnValueHandlers() != null) {handlers.addAll(getCustomReturnValueHandlers());}// 兜底的解析器if (!CollectionUtils.isEmpty(getModelAndViewResolvers())) {handlers.add(new ModelAndViewResolverMethodReturnValueHandler(getModelAndViewResolvers()));}else {handlers.add(new ModelAttributeMethodProcessor(true));}return handlers;
}

这些返回值解析器会被封装到HandlerMethodReturnValueHandlerComposite中,处理返回值时,会按照加入的顺序依次判断每个返回值解析器能否解析此任务,如果其中某个解析器能够解析此参数,则返回解析结果

2.自定义返回值解析器

在某些场景下,我们可以自定义返回值解析器,将响应的返回值转成我们希望的格式,假如我们想要将响应转换为yml格式,这时我们可以自定义注解,然后再自定义返回值解析器实现HandlerMethodReturnValueHandler接口,示例如下:

1)创建自定义注解@Yml及自定义返回值处理器YmlReturnResolver实现HandlerMethodReturnValueHandler接口

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Yml {
}public class YmlReturnResolver implements HandlerMethodReturnValueHandler {// 判断返回值解析器是否支持@Overridepublic boolean supportsReturnType(MethodParameter methodParameter) {Yml yml = methodParameter.getMethodAnnotation(Yml.class);return yml != null;}@Overridepublic void handleReturnValue(Object o, MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer,NativeWebRequest nativeWebRequest) throws Exception {// 将返回值转换为yamlString str = new Yaml().dump(o);// 设置响应内容HttpServletResponse response = nativeWebRequest.getNativeResponse(HttpServletResponse.class);response.setContentType("text/plain;charset=utf-8");response.getWriter().print(str);// 设置请求已处理完毕modelAndViewContainer.setRequestHandled(true);}
}

2)配置类中加入自定义返回值解析器

@Configuration
@ComponentScan
public class WebConfig {@Beanpublic ServletWebServerFactory servletWebServerFactory() {return new TomcatServletWebServerFactory();}@Beanpublic DispatcherServlet dispatcherServlet() {return new DispatcherServlet();}@Beanpublic DispatcherServletRegistrationBean servletRegistrationBean(DispatcherServlet dispatcherServlet) {DispatcherServletRegistrationBean dispatcherServletRegistrationBean = new DispatcherServletRegistrationBean(dispatcherServlet, "/");dispatcherServletRegistrationBean.setLoadOnStartup(1);return dispatcherServletRegistrationBean;}@Beanpublic MyRequestMappingHandlerAdapter requestMappingHandlerAdapter() {MyRequestMappingHandlerAdapter handlerAdapter = new MyRequestMappingHandlerAdapter();// 添加自定义返回值解析器handlerAdapter.setCustomReturnValueHandlers(Arrays.asList(new YmlReturnResolver()));return handlerAdapter;}
}

3)创建控制器类及实体类

@Controller
public class Controller01 {@GetMapping("/test")@Ymlpublic User test() {
http://www.yidumall.com/news/17464.html

相关文章:

  • 外贸独立站运营xp优化大师
  • 颜色搭配的网站网站站长工具
  • 百度网站收录查询地址短网址链接生成
  • 排版设计网站有哪些网站怎么被收录
  • 宣传网站怎么做的郑州网站建设
  • 厦门同安建设局网站东莞seo搜索
  • 如何建单页网站栏目网络营销形式
  • 江阴安泰物流有限公司网站谁做的合肥网站快速优化排名
  • 官方网站怎么做乐陵市seo关键词优化
  • 宣传推广策略有哪些百度官方优化软件
  • 如何下载wordpress网站建设优化公司
  • 大连建设工程信息网官网首页seo入门教程视频
  • 网站 公司 备案石家庄抖音seo
  • 公司门户app北京seo网站开发
  • 网站的架构与建设如何修改百度上面的门店号码
  • 网站音频播放器源码网站关键词如何优化
  • 我有虚拟服务器怎么快速做网站网络营销流程
  • 管理部门网站建设说明最新消息新闻
  • wordpress 访问限制seo的中文含义是什么
  • 长春网站建设找新生科技怎么做百度关键词排名
  • 做网站猫要做端口映射吗seo上排名
  • 怎么用记事本做网站网站子域名查询
  • 京东优惠券网站建设seo技术教程博客
  • 上海正规做网站公司报价如何创建网站?
  • 湛江网站制作工具百度指数官网入口
  • wordpress 出现广告seo是搜索引擎营销吗
  • 广州网站建设是什么企业推广策划方案
  • 做文库网站怎么赚钱网上营销的方式
  • 可以做软件外包项目的网站seo是什么职位
  • 产品开发是做什么的网站seo排名优化价格