一、什麼是WebMvcConfigurer?
WebMvcConfigurer是Spring Boot提供的一個配置接口,用於配置Spring MVC的相關配置。它可以讓開發者通過實現接口的方式來擴展Spring MVC的功能,包括添加攔截器、視圖解析器、消息轉換器等等。WebMvcConfigurer是Spring MVC配置的核心接口之一,十分重要。
二、如何實現WebMvcConfigurer?
為了實現WebMvcConfigurer接口,我們需要編寫一個Java類,讓其同時實現該接口。WebMvcConfigurer提供了一些默認的實現方法,我們只需要實現我們需要的方法即可,例如:
@Configuration
public class MvcConfigurer implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AuthenticationInterceptor());
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/views/", ".jsp");
}
// 還可以實現其他方法...
}
上述代碼實現了addInterceptors()和configureViewResolvers()兩個方法,分別用於添加自定義攔截器和配置視圖解析器。當Spring Boot應用啟動時,該類將被Spring自動識別並加載。
三、常用的WebMvcConfigurer方法
除了上述兩種方法,WebMvcConfigurer還提供了許多其他方法,下面我們來逐一介紹。
1. 配置攔截器(addInterceptors())
addInterceptors()方法用於添加自定義攔截器,需要傳入InterceptorRegistry對象,示例如下:
@Configuration
public class MvcConfigurer implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AuthenticationInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/login");
}
}
上述代碼添加了一個名為AuthenticationInterceptor的攔截器,並指定其攔截所有請求,除了/login請求。
2. 配置視圖解析器(configureViewResolvers())
configureViewResolvers()方法用於配置視圖解析器,需要傳入ViewResolverRegistry對象,示例如下:
@Configuration
public class MvcConfigurer implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/views/", ".jsp")
.viewNames("myView")
.defaultViewName("index");
}
}
上述代碼配置了一個JSP視圖解析器,將視圖文件放置於/WEB-INF/views/目錄下,使用.jsp作為後綴名。同時指定了自定義視圖名稱myView和默認視圖名稱index。
3. 配置靜態資源(addResourceHandlers())
addResourceHandlers()方法用於配置靜態資源路徑,通常用於展示圖片、樣式表、JavaScript等文件。示例如下:
@Configuration
public class MvcConfigurer implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
}
上述代碼配置了靜態資源目錄/static/,並將其映射到classpath:/static/路徑下。我們可以在HTML代碼中使用/static/路徑來訪問該目錄下的資源。
4. 配置消息轉換器(extendMessageConverters())
extendMessageConverters()方法用於擴展Spring MVC的消息轉換器,可以添加自定義的消息轉換器,支持JSON、XML等格式。示例如下:
@Configuration
public class MvcConfigurer implements WebMvcConfigurer {
@Override
public void extendMessageConverters(List<HttpMessageConverter> converters) {
converters.add(new FastJsonHttpMessageConverter());
}
}
上述代碼添加了一個FastJsonHttpMessageConverter消息轉換器,用於將Java對象轉換為JSON格式。
四、總結
WebMvcConfigurer是Spring Boot中用於配置Spring MVC的核心接口之一,它允許開發者通過實現接口的方式來擴展Spring MVC的功能。WebMvcConfigurer提供了許多常用的配置方法,包括添加攔截器、配置視圖解析器、配置靜態資源、添加消息轉換器等等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/219505.html
微信掃一掃
支付寶掃一掃