中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

做網站是什么課網絡營銷公司簡介

做網站是什么課,網絡營銷公司簡介,簡單網頁模板下載,網站建設維護學什么1.返回值解析器介紹 返回值解析器用于解析Hanlder執(zhí)行方法后的返回結果,例如將方法上標注有@ResponseBody注解的返回值解析成JSON、將方法返回的字符串作為視圖名等 SpringMVC中默認的返回值解析器見RequestMappingHandlerAdapter#getDefaultReturnValueHandlers private L…

1.返回值解析器介紹

返回值解析器用于解析Hanlder執(zhí)行方法后的返回結果,例如將方法上標注有@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中,處理返回值時,會按照加入的順序依次判斷每個返回值解析器能否解析此任務,如果其中某個解析器能夠解析此參數(shù),則返回解析結果

2.自定義返回值解析器

在某些場景下,我們可以自定義返回值解析器,將響應的返回值轉成我們希望的格式,假如我們想要將響應轉換為yml格式,這時我們可以自定義注解,然后再自定義返回值解析器實現(xiàn)HandlerMethodReturnValueHandler接口,示例如下:

1)創(chuàng)建自定義注解@Yml及自定義返回值處理器YmlReturnResolver實現(xiàn)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)創(chuàng)建控制器類及實體類

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

相關文章:

  • 東莞英文建站關鍵字優(yōu)化
  • 自己做的網站如何上傳網站買賣交易平臺
  • 免費網站建設php備案查詢站長之家
  • 河南省建筑一體化平臺官網seo實戰(zhàn)培訓中心
  • 網站開發(fā)技術與開發(fā)環(huán)境谷歌搜索排名規(guī)則
  • 廣州做網站哪家好公司站長工具seo綜合查詢源碼
  • 淘寶客怎么做其他網站的推廣百度seo排名360
  • 微信是哪個公司開發(fā)的軟件seo網站排名優(yōu)化公司哪家好
  • 六安網站制作費用多少友情網
  • 建設網站合同最新重大新聞
  • apmserv網站模板怎樣進行網絡營銷吸引顧客
  • 網站哪家公司做的最好百度推廣競價
  • 北京 高端網站設計網站分析報告范文
  • 網站入股云建站百度手機助手下載安卓
  • 南海網站建設網站seo在線診斷
  • 建設手機網站包括哪些費用怎么做百度推廣平臺
  • 廣州商城網站建設東莞關鍵詞自動排名
  • 做我的狗哪個網站可以看廣州網站推廣排名
  • 網站開發(fā)與應用百度競價培訓班
  • 網站建設需求免費html網頁模板
  • 天津在哪做網站西安seo網站排名
  • 中小企業(yè)發(fā)展淘寶seo關鍵詞的獲取方法有哪些
  • 怎么做阿里國際網站的數(shù)據(jù)分析重慶森林電影簡介
  • 網站制作與建設書籍東莞有限公司seo
  • 學校做網站方案浙江企業(yè)seo推廣
  • 在線傳媒有限公司搜索引擎優(yōu)化的主要內容
  • 枸杞網站建設方案seo外包
  • wordpress網站文件管理谷歌推廣代理商
  • 網頁游戲排行榜2023西安網站seo服務
  • 濟南企業(yè)建站品牌騰訊企點