一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java深入淺出掌握SpringBoot之MVC自動配置原理篇

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

2022-03-02 00:41龍弟-idea Java教程

在進行項目編寫前,我們還需要知道一個東西,就是SpringBoot對我們的SpringMVC還做了哪些配置,包括如何擴展,如何定制,只有把這些都搞清楚了,我們在之后使用才會更加得心應手

Spring Boot 為 Spring MVC 提供了自動配置,適用于大多數應用程序。

 

官方文檔描述:

自動配置在 Spring 的默認值之上添加了以下功能:

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

從官方描述解析:

If you want to keep Spring Boot MVC features and you want to add 
additionalMVC configuration (interceptors, formatters, view controllers, 
and other features), you can add your own 
@Configuration class of type WebMvcConfigurer but without @EnableWebMvc.

 

擴展SpringMVC

由于WebMvcConfigurer是個接口

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

創建一個MyMvcConfig實現這個接口

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

之前我們學的視圖解析器是我們手動配置

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

ViewResolver 實現了視圖解析器接口的類,就看做是視圖解析器

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

搜索ContentNegotiatingViewResolver,找到如下方法resolveViewName!找到對應的視圖解析代碼

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

從 getCandidateViews中看到它是把所有的視圖解析器拿來,進行遍歷循環

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

結論:ContentNegotiatingViewResolver 這個視圖解析器就是用來組合所有的視圖解析器的

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

可以看出它是從容器中去找視圖解析器,我們也可以在容器中實現一個視圖解析器!

 

容器中實現一個視圖解析器

1、我們在主程序中去寫一個視圖解析器;

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

2、如何看我們自己寫的視圖解析器是否起了作用呢?

我們給 DispatcherServlet 中的 doDispatch方法 加個斷點進行調試一下,因為所有的請求都會走到這個方法中!

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

3、我們啟動我們的項目,然后隨便訪問一個頁面,看一下Debug信息,找到this

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

4、找到視圖解析器,我們看到我們自己定義的就在這里了;

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

所以說,我們如果想要使用diy定制的東西,我們只需要給容器中添加這個組件就好了,SpringBoot就會幫我們自動裝配!

 

轉換器和格式化器

找到格式化轉換器:

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

點進去可以看到

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

如果配置了自己的格式化方式,就會注冊到Bean中生效,我們可以在配置文件中配置日期格式化的規則:可以看到在我們的Properties文件中,我們可以進行自動配置它!

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

 

修改SpringBoot的默認配置

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

結論:我們要擴展SpringMVC,官方就推薦我們這么去使用,既保SpringBoot留所有的自動配置,也能用我們擴展的配置!

分析一下原理:

1、WebMvcAutoConfiguration 是 SpringMVC的自動配置類,里面有一個類WebMvcAutoConfigurationAdapter

2、這個類上有一個注解,在做其他自動配置時會導入:@Import(EnableWebMvcConfiguration.class)

3、我們點進EnableWebMvcConfiguration這個類看一下,它繼承了一個父類:DelegatingWebMvcConfiguration

這個父類中有這樣一段代碼:

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

4、我們可以在這個類中去尋找一個我們剛才設置的viewController當做參考,發現它調用了一個

protected void addViewControllers(ViewControllerRegistry registry) {
  this.configurers.addViewControllers(registry);
}

5、我們點進去看一下

public void addViewControllers(ViewControllerRegistry registry) {
  Iterator var2 = this.delegates.iterator();

  while(var2.hasNext()) {
      // 將所有的WebMvcConfigurer相關配置來一起調用!包括我們自己配置的和Spring給我們配置的
      WebMvcConfigurer delegate = (WebMvcConfigurer)var2.next();
      delegate.addViewControllers(registry);
  }

}

結論:所有的WebMvcConfiguration都會被作用,不止Spring自己的配置類,我們自己的配置類當然也會被調用

 

全面接管SpringMVC

全面接管即:SpringBoot對SpringMVC的自動配置不需要了,所有都是我們自己去配置!

只需在我們的配置類中要加一個@EnableWebMvc。

我們開發中,不推薦使用全面接管SpringMVC

1、這里看到它是導入了一個類,繼續點進去看

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

2、它繼承了一個父類 WebMvcConfigurationSupport

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

3、回顧一下Webmvc自動配置類

Java深入淺出掌握SpringBoot之MVC自動配置原理篇

總結:@EnableWebMvc將WebMvcConfigurationSupport組件導入進來;

而導入的WebMvcConfigurationSupport只是SpringMVC最基本的功能!

到此這篇關于Java深入淺出掌握SpringBoot之MVC自動配置原理篇的文章就介紹到這了,更多相關Java SpringBoot MVC自動配置內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_48838340/article/details/120628025

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成年人网站 | 深夜免费看 | 极品妖艳许清赵丽全文免费阅读 | 91搞搞| 精品成人在线 | 97久久久亚洲综合久久88 | 四虎一影院区永久精品 | 无码一区二区三区视频 | 九九爱这里只有精品 | 99热最新| 免费亚洲视频在线观看 | 无套内射在线观看THEPORN | 97色| sex5·性屋娱乐| 毛片免费视频观看 | 亚洲高清在线视频 | 精品免费久久久久久成人影院 | 91传媒制片厂果冻有限公司 | 亚洲性网 | 色综合久久天天综合 | 色女的乖男人 | 国产午夜久久精品 | 成人中文字幕在线高清 | 日本三级在丈面前被耍了 | 高清在线观看mv的网址免费 | 国产成人精品一区二区仙踪林 | 果冻传媒在线视频观看免费 | 国产日韩欧美一区 | 大学生特黄特色大片免费播放 | 人人看人人射 | 久热人人综合人人九九精品视频 | japonensis中国东北老人 | 国产高清在线视频一区二区三区 | 欧美一区二区三区不卡视频 | 国产理论片在线观看 | 欧美性色黄大片四虎影视 | 97色资源 | 毛片一级免费 | 暖暖高清日本在线 | 动漫美女被羞羞产奶 | 国产亚洲综合精品一区二区三区 |