Spring MVC Web 配置类:WebMvcConfig 代码解析
Spring MVC Web 配置类:WebMvcConfig 代码解析
该代码是一个典型的 Spring MVC Web 配置类,名为 WebMvcConfig,它实现了 WebMvcConfigurer 接口,用于配置 Spring MVC 相关的行为。
代码功能解析
-
配置视图解析器:
configureViewResolvers方法用于配置视图解析器,它使用InternalResourceViewResolver将视图名称解析为具体的视图文件路径。 -
配置全局异常处理器:
configureHandlerExceptionResolvers方法用于配置全局异常处理器,它将GlobalExceptionHandler添加到异常处理器列表中,用于统一处理应用程序中出现的异常。 -
配置请求路径匹配策略:
configurePathMatch方法用于配置请求路径匹配策略,它禁用后缀模式匹配,即false表示不会匹配index.html这样的路径,只匹配index。 -
配置拦截器:
addInterceptors方法用于配置拦截器,它将WebInterceptor添加到拦截器列表中,用于拦截请求并进行相关处理。 -
配置静态资源访问路径和资源位置的映射关系:
addResourceHandlers方法用于配置静态资源访问路径和资源位置的映射关系,它将/assets/**映射到classpath:/assets/,表示访问/assets下的任何资源都会从classpath:/assets/路径下获取。 -
配置 Bean:
webInterceptor()方法使用@Bean注解配置WebInterceptorBean,它是一个自定义的拦截器,用于处理请求。globalExceptionHandler()方法使用@Bean注解配置GlobalExceptionHandlerBean,它是一个自定义的全局异常处理器,用于处理异常。jsonObject()方法使用@Bean注解配置JSONObjectBean,它是一个 Fastjson 的对象,用于存储和处理 JSON 数据。
知识点内容
-
Spring MVC 配置:包括视图解析器、异常处理器、路径匹配策略、拦截器和静态资源处理等。
-
注解配置:使用
@Configuration注解标注该类为配置类,使用@Bean注解配置 Bean。 -
依赖注入:通过
@Bean注解配置 Bean 并注入到其他组件中。 -
Fastjson:使用 Fastjson 的
JSONObject类配置 Bean。
代码解读
package com.zhazhapan.efo.config;
import com.alibaba.fastjson.JSONObject;
import com.zhazhapan.efo.exception.GlobalExceptionHandler;
import com.zhazhapan.efo.interceptor.WebInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import java.util.List;
/**
* @author admin
*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix('/');
viewResolver.setSuffix('.html');
registry.viewResolver(viewResolver);
}
@Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) {
resolvers.add(globalExceptionHandler());
}
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(false);
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(webInterceptor());
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler('/assets/**').addResourceLocations('classpath:/assets/');
}
@Bean
public WebInterceptor webInterceptor() {
return new WebInterceptor();
}
@Bean
public GlobalExceptionHandler globalExceptionHandler() {
return new GlobalExceptionHandler();
}
@Bean
public JSONObject jsonObject() {
return new JSONObject();
}
}
总结
WebMvcConfig 类是 Spring MVC 的核心配置类之一,它负责配置 Spring MVC 的各个方面,包括视图解析、异常处理、路径匹配、拦截器、静态资源处理等。通过合理配置 WebMvcConfig 类,可以提高 Web 应用的性能和安全性。
原文地址: https://www.cveoy.top/t/topic/nu4D 著作权归作者所有。请勿转载和采集!