日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot 管理 MVC

發布時間:2024/9/30 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot 管理 MVC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Spring MVC 自動配置

Spring Boot 為 Spring MVC 應用提供了自動配置。主要包括視圖解析器、靜態資源處理、類型轉化器與格式化器、HTTP 消息轉換器、靜態主頁的支持等。

Spring MVC 自動配置是通過 WebMvcAutoConfiguration 類實現的,如果你去看這個類的源碼,一定會發現很多熟悉的配置,比如視圖解析、歡迎頁、請求處理器、過濾器等。

Spring Boot 還支持用戶自定義這些組件,當項目啟動時先檢查用戶有沒有自定義這些組件,如果有定義就使用自定義的,當沒有自定義時就默認使用自動配置的。

比如下面自定義一個支持 RESTful 的過濾器(沒有實際的用途,用于說明問題)

@Configuration public class MyHttpMethodFilter {@Beanpublic HiddenHttpMethodFilter httpMethodFilter() {return new HiddenHttpMethodFilter();} }

當項目啟動時,可以通過日志查看是否生效

二、擴展 Spring MVC 配置

在保持上面自動配置的基礎上,Spring Boot 還支持擴展其他的組件,比如攔截器、格式化器、視圖控制器等。@Configuration 注解可以用于實現這個功能,表明這是一個 WebMvcConfigurer 的配置類。當使用這個注解擴展 Spring MVC 時,不能再添加 @EnableWebMvc 注解,原因會在下面講到。

在 Spring Boot 2.0 以前使用 WebMvcConfigurerAdapter 來擴展 Spring MVC 組件,它是一個適配器,實現自 WebMvcConfigurer 接口,里面的方法全部是空方法。目的就是讓我們繼承這個類,重寫里面的方法。

在 Spring Boot 2.0 之后 WebMvcConfigurerAdapter 就已經過時了,并且 WebMvcConfigurer 接口也發生了變化,里面所有的方法都定義成了默認方法(default)。因此我們可以直接實現 WebMvcConfigurer 接口,重寫對應的方法即可,接口中的默認方法是 jdk1.8 才支持的,所以使用時必須保證這一點。

WebMvcConfigurer 接口中可以擴展的方法

下面以攔截器為例來說明問題

自定義攔截器類 MyHandlerInterceptor

/*** Spring Boot2.0 版本以上 HandlerInterceptor 接口中的方法全部是默認方法* 因此這里只重寫 preHandle 方法,在目標方法執行前打印一句話*/ public class MyHandlerInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("== preHandle ==");return true;} }

Spring MVC 擴展類 WebConfiguration

@Configuration public class WebConfiguration implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyHandlerInterceptor()).addPathPatterns("/**");} }

測試的 Controller

@RequestMapping("/test")@ResponseBodypublic String test() {System.out.println("**************");return "Hello Spring Boot!";}

當訪問 /test 時控制臺的輸出如下

三、禁用 Spring MVC 的自動配置

上面提到在使用 WebMvcConfigurer 擴展 Spring MVC 組件時,類上不能加 @EnableWebMvc 注解,原因是在加上該注解后,Spring MVC 的自動配置會失效,所有的東西都需要我們自動配置。

下面來測試一下,在 WebConfiguration 擴展類加上 @EnableWebMvc 注解

@Configuration @EnableWebMvc public class WebConfiguration implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyHandlerInterceptor()).addPathPatterns("/**");} }

下面是入口類啟動日志,發現只有一個編碼過濾器生效,這也可以說明編碼過濾器并不屬于自動配置

PS:
從這個問題也可以看出為什么 Spring Boot 受到很多 Java 開發者的喜歡,原因就是當你需要它的時候,它可以自動幫你完成很多任務,當你不需要它時,你也可以完全將它拋棄。

總結

以上是生活随笔為你收集整理的Spring Boot 管理 MVC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 公侵犯人妻中文字慕一区二区 | 亚洲视频456 | www.97视频| 免费黄色在线播放 | 天天插天天干天天操 | 日韩不卡高清视频 | 黄av网 | 精品自拍偷拍 | 波多野结衣网站 | 暖暖视频日本 | 精精国产xxxx视频在线 | 狠狠97 | 特级一级黄色片 | 欧美女优视频 | 久久.com | 麻豆精品视频在线 | 可以免费在线观看的av | 亚洲伊人久久久 | 天堂久久精品忘忧草 | av在线手机观看 | 自拍偷拍亚洲视频 | 日韩欧美亚 | 日本啪啪网| 特黄视频免费看 | 天天综合网在线观看 | 日韩91av| 亚洲熟妇无码av在线播放 | 二区视频在线 | 狂野欧美性猛交免费视频 | www网站在线观看 | 国产剧情在线观看 | 三级免费 | 成人区一区二区 | 久久亚洲国产成人精品性色 | 亚洲精品国产视频 | 超清av| 给我看高清的视频在线观看 | 日韩精品一区二区三区免费视频 | 欧美天天色 | 欧美a在线看 | 欧美黑人一区 | 亚洲精品一二三四区 | 天天干夜夜做 | 2021狠狠干| 快射视频网 | 精品国产欧美一区二区三区成人 | 日韩成年视频 | ass大乳尤物肉体pics | 日本不卡在线视频 | 性欧美欧美巨大69 | 男女羞羞动态图 | 久久久久成人精品无码中文字幕 | 黄色1级片| 在线观看中文字幕一区 | 色亭亭| 日韩激情影院 | 第一页在线视频 | 巨物撞击尤物少妇呻吟 | 脱女学生小内内摸了高潮 | 四虎音影 | a级一a一级在线观看 | 久草福利网 | 午夜激情福利视频 | 草莓视频成人在线 | 亚洲wwwwww| 国产99久久久国产精品免费看 | av一二三四| 亚洲春色一区二区三区 | 色婷婷一区二区三区四区 | 99久久成人| 国产强被迫伦姧在线观看无码 | 四虎国产精品免费 | 性生交生活影碟片 | jizz免费在线观看 | 日本欧美激情 | 日韩精品一区二区三区在线视频 | 欧美啪啪网站 | 美女扣逼喷水视频 | 日本福利在线观看 | 欧美浮力影院 | 伊伊成人网 | 国产精品亚州 | 亚洲午夜片 | 欧美美女喷水 | 黄色肉肉视频 | 澳门黄色网| 久操视频精品 | 91直接进入 | 日韩成人高清视频在线观看 | 涩涩涩综合 | 亚洲第一色视频 | 伊人网在线观看 | 国产性生活 | 国产毛片3| 国产视频h | 色婷婷狠 | 亚洲欧美a | 波多野结衣视频免费在线观看 | 国产三级直播 |