一、什麼是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