最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMvc定制化深入探究原理

 更新時(shí)間:2022年10月20日 15:47:08   作者:劉婉晴  
SpringMVC是一種基于Java,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦,這篇文章主要介紹了SpringMvc定制化原理

一、SpringBoot 自動(dòng)配置套路

引入場(chǎng)景 starter —— xxxxAutoConfiguration —— 導(dǎo)入 xxxx組件 —— 綁定 xxxxProperties —— 綁定配置文件項(xiàng)

因此,需要修改時(shí)只需要修改配置文件項(xiàng)

二、定制化常見方式

使用 @Bean + 編寫自定義配置類 ,增加或替換容器中的一些組件 (常用)

修改配置文件

使用定制化器 —— xxxxCustomizer

編寫配置類, 實(shí)現(xiàn) WebMvcConfigurer 接口,定制化 web 功能 (常用)

@EnableWebMvc + 實(shí)現(xiàn) WebMvcConfigurer 接口 ,全面接管 SpringMvc,所有 SpringBoot 默認(rèn)規(guī)則失效 (慎用)

@EnableWebMvc 原理

  • WebMvcAutoConfiguration 中有全部 SpringMvc 默認(rèn)自動(dòng)配置功能類(靜態(tài)資源、歡迎頁(yè)…)
  • 一旦使用 @EnableWebMvc ,其是一復(fù)合注釋,導(dǎo)入 DelegatingWebMvcConfiguration 類
@Import({<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->DelegatingWebMvcConfiguration.class})

DelegatingWebMvcConfiguration.class 只保證 SpringMvc 最底層的使用,其作用如下

(1)把系統(tǒng)中的所有 WebMvcConfigurer 拿過來(lái),無(wú)論有多少 Configurer 都是這些 Configurer 合起來(lái)一起生效

(2)@EnableWebMvc 自動(dòng)配置了一些最底層的組件(RequestMappingHandlerMapping …),這些組件依賴的組件都是從容器中獲取

WebMvcAutoConfiguration 生效的條件為容器中沒有 WebMvcConfigurationSupport.class這個(gè)組件(這個(gè)組件在DelegatingWebMvcConfiguration 中,DelegatingWebMvcConfiguration 在 EnableWebMvc 中)

@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)

因此,使用 @EnableWebMvc 后,所有的自動(dòng)配置規(guī)則都失效,慎用 ?。?!

三、使用 @EnableWebMvc 案例

如下為 @EnableWebMvc 全面接管下,需自定義靜態(tài)資源訪問路徑代碼示例,不止是這個(gè)行為需要自定義,其他自動(dòng)配置的行為全部需要自定義,因此要慎用

@Configuration
@EnableWebMvc // 完全控制 SpringMvc , 全面接管 —— 謹(jǐn)慎使用
// 全面接管含義: SpringBoot 官方列舉的自動(dòng)配置,全部失效,必須自定義行為
public class AdminWebConfig implements WebMvcConfigurer {
    // 全面接管下,定義靜態(tài)資源行為
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 訪問 a 路徑下的所有請(qǐng)求,都去 static 文件夾下尋找
        registry.addResourceHandler("/a/**").addResourceLocations("classpath:/static/");
    }
}

到此這篇關(guān)于SpringMvc定制化深入探究原理的文章就介紹到這了,更多相關(guān)SpringMvc定制化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

密山市| 平谷区| 衡阳县| 方城县| 磐石市| 江都市| 长岭县| 阿瓦提县| 莱阳市| 金乡县| 五家渠市| 同仁县| 孝义市| 吉木萨尔县| 隆尧县| 长海县| 南开区| 甘孜县| 衡阳市| 普兰店市| 扬州市| 延长县| 平谷区| 云龙县| 湖北省| 岳池县| 桐庐县| 海晏县| 东乌珠穆沁旗| 肃南| 平邑县| 万年县| 同仁县| 二连浩特市| 手游| 高安市| 高雄市| 德阳市| 平顺县| 万载县| 郁南县|