日韩性视频-久久久蜜桃-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的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美69式性猛交 | 黄色激情视频在线观看 | 精品人妻一区二区三区日产乱码卜 | 亚洲另类自拍 | 日韩视频免费观看高清 | 暖暖成人免费视频 | 亚洲一区二区三区网站 | 人人人插| 日本久久久久久 | 在线观看免费国产视频 | 精品无码国产污污污在线观看 | 久久精品高清视频 | 日韩黄色大全 | 成人免费一区二区三区在线观看 | 欧美 变态 另类 人妖 | 黄色一级小说 | 黄色污在线观看 | 欧美视频网址 | 日本黄色三级网站 | 奇米超碰在线 | 天堂中文在线播放 | 日韩电影中文字幕 | 女人久久久久 | 香蕉视频黄色在线观看 | 伊人久久大香网 | 亚洲激情视频在线播放 | 男人日女人网站 | 玖玖热在线视频 | 色天使在线视频 | 老女人性生活视频 | 成人免费xxxxx在线观看 | 日日夜夜超碰 | 五月婷婷六月色 | 婷婷国产成人精品视频 | 秋霞自拍| 欧美福利视频在线 | 亚洲高清视频在线 | 国产老熟女一区二区三区 | avtt香蕉久久| 亚洲卡一卡二 | 欧美偷拍精品 | 日韩精品久久久久久久的张开腿让 | 久久99精品国产.久久久久久 | 青青草原av在线 | 免费看h网站 | 噼里啪啦国语版在线观看 | 又黄又爽又色的视频 | 自拍偷拍另类 | 在线日韩国产 | 国产偷v国产偷v亚洲高清 | 欧美日韩在线播放 | 黄色99视频 | 久久香蕉热 | 成人精品免费在线观看 | 亚洲一区二区三区加勒比 | 超碰激情| 成人欧美一区二区三区小说 | 天堂中文字幕免费一区 | 在线观看免费观看 | 久久久久久久久久久久久久 | 欧美视频第一区 | 精国产品一区二区三区a片 国产精品第一 | 在线视频日韩欧美 | 99精品热| 美丽姑娘免费观看在线观看 | 国产免费一区二区三区三州老师 | 非洲黑人毛片 | 日韩激情四射 | 黄色大片网址 | 我要操婊 | 精品视频在线观看一区二区 | h片大全 | 好吊在线视频 | a级片中文字幕 | 日韩一级高清 | www黄色com | 草草视频在线 | 久久久久久久亚洲av无码 | 美女黄视频网站 | 在线观看亚洲一区 | 神马午夜不卡 | 最新国产精品 | 精品一区二区免费视频 | 2021天天干 | 欧美专区视频 | 一区二区三区啪啪啪 | 日韩精品欧美在线 | 国产精选在线 | 亚洲91av | 天天躁日日躁狠狠躁喷水 | 午夜精品福利电影 | 亚洲av日韩av不卡在线观看 | 五月婷婷六月天 | 亚洲91av | 狠狠干综合网 | 成人免费看 | 天堂av影院| 韩漫动漫免费大全在线观看 | 欧美日韩视频在线观看一区 |