@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 注解的類上,表示要啟用 Spring MVC 框架。在這個(gè)類中,你可以添加自定義的 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)配置類和后處理器集中在一起,便于 Spring Boot 在運(yùn)行時(shí)自動(dòng)進(jìn)行組件裝配。此外,這個(gè)文件可以通過(guò)手動(dòng)編寫或由 Spring Boot 應(yīng)用自動(dòng)生成的方式來(lái)擴(kuò)展應(yīng)用配置。
在 Spring 框架中,spring.factories 文件作為 Spring 的 Service Provider Interface(SPI)機(jī)制的一部分,用于提供接口實(shí)現(xiàn)類的元數(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)配置類的全限定名,值是該自動(dòng)配置類所對(duì)應(yīng)的配置類的全限定名。例如:
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration=org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration
工作原理
Spring Boot啟動(dòng)時(shí),它會(huì)掃描classpath下所有的spring.factories文件,加載其中的自動(dòng)配置類,并將它們注入到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)配置,以滿足項(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)文章
Java Swing組件文件選擇器JFileChooser簡(jiǎn)單用法示例
這篇文章主要介紹了Java Swing組件文件選擇器JFileChooser簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了Swing組件中的文件選擇器JFileChooser的簡(jiǎn)單使用方法,需要的朋友可以參考下2017-11-11
java新增關(guān)聯(lián)的三張表,每張表要求都插入集合,代碼實(shí)現(xiàn)方式
這篇文章主要介紹了java新增關(guān)聯(lián)的三張表,每張表要求都插入集合,代碼實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Hadoop運(yùn)行時(shí)遇到j(luò)ava.io.FileNotFoundException錯(cuò)誤的解決方法
今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著Hadoop運(yùn)行時(shí)遇到j(luò)ava.io.FileNotFoundException錯(cuò)誤展開(kāi),文中有非常詳細(xì)的解決方法,需要的朋友可以參考下2021-06-06
springboot2啟動(dòng)時(shí)執(zhí)行,初始化(或定時(shí)任務(wù))servletContext問(wèn)題
這篇文章主要介紹了springboot2啟動(dòng)時(shí)執(zhí)行,初始化(或定時(shí)任務(wù))servletContext問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
java開(kāi)發(fā)環(huán)境的完整搭建過(guò)程
這篇文章主要給大家介紹了關(guān)于java開(kāi)發(fā)環(huán)境的完整搭建過(guò)程,文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
SpringBoot2開(kāi)發(fā)從0開(kāi)始Spring?Initailizr初始化
這篇文章主要為大家介紹了SpringBoot2從0開(kāi)始lombok、devtools、Spring?Initailizr的開(kāi)發(fā)技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Java防止代碼被動(dòng)態(tài)篡改的解決方案和代碼示例
在Java中,反射攻擊是一種通過(guò)動(dòng)態(tài)訪問(wèn)或修改類、方法、字段等私有成員的攻擊方式,可能導(dǎo)致敏感數(shù)據(jù)泄露、權(quán)限繞過(guò)或系統(tǒng)崩潰,為了防止代碼被動(dòng)態(tài)篡改,需要從 訪問(wèn)控制、輸入驗(yàn)證、安全機(jī)制、代碼加固 等多方面入手,以下是詳細(xì)的解決方案和代碼示例2025-07-07
idea 創(chuàng)建properties配置文件的步驟
這篇文章主要介紹了idea 創(chuàng)建properties配置文件的步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01

