@EnableWebMvc介紹和使用詳細(xì)demo(最新推薦)
@EnableWebMvc介紹和使用詳細(xì)demo
@EnableWebMvc是什么
@EnableWebMvc 是 Spring MVC 中的一個(gè)注解,它用于啟用 Spring MVC 框架的基本功能,以便你可以使用 Spring MVC 提供的特性來(lái)處理 Web 請(qǐng)求。
通常情況下,在基于 Spring Boot 的應(yīng)用中,并不需要顯式地使用 @EnableWebMvc,因?yàn)?Spring Boot 已經(jīng)默認(rèn)自動(dòng)配置了 Spring MVC。但是,如果你想要自定義 Spring MVC 的配置,或者禁用 Spring Boot 對(duì) Spring MVC 的自動(dòng)配置,那么你就需要顯式地使用 @EnableWebMvc。
使用示例
下面是一個(gè)簡(jiǎn)單的使用 @EnableWebMvc 的示例:
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @EnableWebMvc public class WebMvcConfig implements WebMvcConfigurer { // 配置靜態(tài)資源處理 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); } // 配置視圖解析器 @Override public void configureViewResolvers(ViewResolverRegistry registry) { registry.jsp("/WEB-INF/views/", ".jsp"); } // 其他自定義的 Spring MVC 配置 }
在上面的示例中,@EnableWebMvc 注解被添加到了一個(gè) @Configuration 注解的類(lèi)上,表示要啟用 Spring MVC 框架。在這個(gè)類(lèi)中,你可以添加自定義的 Spring MVC 配置,例如添加攔截器、視圖解析器、消息轉(zhuǎn)換器等。
需要注意的是,使用 @EnableWebMvc 會(huì)完全覆蓋 Spring Boot 對(duì) Spring MVC 的自動(dòng)配置,因此如果你使用了 @EnableWebMvc,就需要自己配置 Spring MVC 的全部?jī)?nèi)容,包括視圖解析器、資源處理、異常處理等。通常情況下,只有在需要非常精細(xì)的控制 Spring MVC 配置時(shí)才會(huì)使用 @EnableWebMvc。
總結(jié):
使用@EnableWebMvc注解,可以開(kāi)啟Spring MVC 框架的基本功能,你可以使用 Spring MVC 提供的特性來(lái)處理 Web 請(qǐng)求,同時(shí)會(huì)完全覆蓋 Spring Boot 對(duì) Spring MVC 的自動(dòng)默認(rèn)配置。
補(bǔ)充:
什么是spring.factories文件,它的作用是什么
spring.factories是什么
spring.factories是 Spring Framework中一個(gè)重要的配置文件,主要用于自動(dòng)化組件裝配和加載。它是 Spring Boot自動(dòng)配置的核心組成部分,允許將不同的自動(dòng)配置類(lèi)和后處理器集中在一起,便于 Spring Boot 在運(yùn)行時(shí)自動(dòng)進(jìn)行組件裝配。此外,這個(gè)文件可以通過(guò)手動(dòng)編寫(xiě)或由 Spring Boot 應(yīng)用自動(dòng)生成的方式來(lái)擴(kuò)展應(yīng)用配置。
在 Spring 框架中,spring.factories
文件作為 Spring 的 Service Provider Interface(SPI)機(jī)制的一部分,用于提供接口實(shí)現(xiàn)類(lèi)的元數(shù)據(jù)信息。當(dāng) Spring 啟動(dòng)時(shí),它會(huì)讀取 META-INF/spring.factories
目錄下的文件,從中獲取包含多個(gè) bean 定義的鍵值對(duì)列表,然后根據(jù)這些定義實(shí)例化相應(yīng)的對(duì)象。
文件格式
spring.factories文件采用鍵值對(duì)的形式,鍵是自動(dòng)配置類(lèi)的全限定名,值是該自動(dòng)配置類(lèi)所對(duì)應(yīng)的配置類(lèi)的全限定名。例如:
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration=org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration
工作原理
Spring Boot啟動(dòng)時(shí),它會(huì)掃描classpath下所有的spring.factories文件,加載其中的自動(dòng)配置類(lèi),并將它們注入到Spring ApplicationContext中,使得項(xiàng)目能夠自動(dòng)運(yùn)行。
使用場(chǎng)景
自動(dòng)配置第三方庫(kù):SpringBoot本身并沒(méi)有提供對(duì)所有第三方庫(kù)的自動(dòng)配置,我們可以通過(guò)spring.factories文件來(lái)實(shí)現(xiàn)對(duì)第三方庫(kù)的自動(dòng)配置。
自定義自動(dòng)配置:我們可以通過(guò)spring.factories文件來(lái)實(shí)現(xiàn)自定義的自動(dòng)配置,以滿(mǎn)足項(xiàng)目的特殊需求。
總結(jié)
spring.factories文件是Spring Boot項(xiàng)目中的一個(gè)重要配置文件,它可以用于自動(dòng)配置第三方庫(kù)和自定義自動(dòng)配置。通過(guò)使用spring.factories文件,我們可以簡(jiǎn)化項(xiàng)目的配置,提高項(xiàng)目的開(kāi)發(fā)效率。
到此這篇關(guān)于@EnableWebMvc介紹和使用詳細(xì)demo的文章就介紹到這了,更多相關(guān)@EnableWebMvc使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis-Plus進(jìn)階分頁(yè)與樂(lè)觀鎖插件及通用枚舉和多數(shù)據(jù)源詳解
這篇文章主要介紹了Mybatis-Plus的分頁(yè)插件與樂(lè)觀鎖插件還有通用枚舉和多數(shù)據(jù)源的相關(guān)介紹,文中代碼附有詳細(xì)的注釋?zhuān)信d趣的朋友來(lái)看看吧2022-03-03IDEA 中 maven 的 Lifecycle 和Plugins&n
IDEA 主界面右側(cè) Maven 標(biāo)簽欄有同樣的命令,比如 install,既在 Plugins 中存在,也在 Lifecycle中存在,到底選哪個(gè)?二者又有什么區(qū)別呢?下面小編給大家介紹下IDEA 中 maven 的 Lifecycle 和Plugins 的區(qū)別,感興趣的朋友一起看看吧2023-03-03java實(shí)現(xiàn)科學(xué)計(jì)算器的全過(guò)程與代碼
最近編寫(xiě)了一個(gè)功能較全面的科學(xué)計(jì)算器,該計(jì)算器不僅能進(jìn)行加、減、乘、除等混合運(yùn)算,而且能計(jì)算sin、cos、tan、log等函數(shù)的值,還要具有清零、退格、求倒數(shù)、求相反數(shù)等功能,這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)科學(xué)計(jì)算器的相關(guān)資料,需要的朋友可以參考下2022-06-06Java Apache Shiro安全框架快速開(kāi)發(fā)詳解流程
Apache Shiro是一個(gè)強(qiáng)大且易用的Java安全框架,執(zhí)行身份驗(yàn)證、授權(quán)、密碼和會(huì)話管理。使用Shiro的易于理解的API,您可以快速、輕松地獲得任何應(yīng)用程序,從最小的移動(dòng)應(yīng)用程序到最大的網(wǎng)絡(luò)和企業(yè)應(yīng)用程序2021-10-10SpringBoot+MybatisPlus+代碼生成器整合示例
這篇文章主要介紹了SpringBoot+MybatisPlus+代碼生成器整合示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03解決執(zhí)行Junit單元測(cè)試報(bào)錯(cuò)java.lang.ClassNotFoundException問(wèn)題
這篇文章主要介紹了解決執(zhí)行Junit單元測(cè)試報(bào)錯(cuò)java.lang.ClassNotFoundException問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11jd-easyflow中inclusive的用法示例小結(jié)
文章介紹了在jd-easyflow中使用inclusive進(jìn)行條件分支配置的方法,當(dāng)conditionType設(shè)置為inclusive時(shí),所有條件分支都會(huì)被評(píng)估,而不僅僅是一個(gè)條件滿(mǎn)足就終止,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-11-11java實(shí)現(xiàn)大文件導(dǎo)出的實(shí)現(xiàn)與優(yōu)化
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)大文件導(dǎo)出的實(shí)現(xiàn)與優(yōu)化的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們深入了解java有一定的幫助,感興趣的小伙伴可以了解下2023-11-11SpringCloud客戶(hù)端的負(fù)載均衡Ribbon的實(shí)現(xiàn)
微服務(wù)架構(gòu),不可避免的存在單個(gè)微服務(wù)有多個(gè)實(shí)例,這篇文章主要介紹了SpringCloud客戶(hù)端的負(fù)載均衡Ribbon的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06