WebMvcConfigurer 增强mvc
作用?
自定义Spring MVC配置,就是增强对mvc的控制
用法
实现 WebMvcConfigurer 接口,重写相关方法
常用的接口方法
addCorsMappings 添加跨域
addInterceptors 添加拦截器
addResourceHandlers 添加静态资源访问
例子
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
// 配置CORS
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://example.com")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("Content-Type", "Authorization")
.allowNullOrigin()
.allowCredentials();
}
// 添加拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new CustomInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/login", "/error");
}
// 配置静态资源
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("classpath:/static-resources/");
}
// 这里可以重写其他WebMvcConfigurer中的方法来进一步自定义配置
// ...
// 自定义拦截器示例
public class CustomInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 在请求处理之前执行的操作
return true;
}
// 还可以重写postHandle和afterCompletion方法
}
// 注意:HandlerInterceptorAdapter在Spring 5之后也被废弃了,应该直接实现HandlerInterceptor接口
// 但为了与旧代码兼容,这里仍然使用HandlerInterceptorAdapter
}
标题:WebMvcConfigurer 增强mvc
作者:temp12138
地址:https://solo.mfyzl.icu/articles/2024/03/20/1710913760531.html
废话短说