本文原文所在:Spring Boot自定义拦截器、静态资源位置等
在web应用中,我们总是会涉及许多静态资源,如css、js以及图片等文件需要进行映射访问,否者在mvc中会无法访问。而且在spring中定义了许多转换器供我们使用,但是有时候在自己的业务逻辑中的数据模型中需要进行特定的转换,以及拦截某些请求进行权限控制,所以就需要我们定义、部署特定的拦截器以及转换器。在spring mvc中,我们都是实现对应的接口或者扩展某个类,然后在XML文件中部署即可,如下所示:
<!--拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.test.service.interceptor.UserPermissionInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
<!--静态资源映射-->
<mvc:resources mapping="/photo/**" location="/image/waifphoto/"/>
<mvc:resources mapping="/img2/**" location="image/webPhoto/"/>
而在springboot中,配置基本都是基于java的,所以今天来说说springboot中的配置方式。
WebMvcConfigurer接口:
在spring boot官方文档中给出的spring boot自定义mvc的拦截器等是通过扩展WebMvcConfigurerAdapter类配合@Configuration注解和可能存在的@EnableWebMvc注解重写某些方法实现。但是在我使用的时候发现该类已经被@Deprecated(过时了),查了下资料,现在一般使用WebMvcConfigurer接口或者WebMvcConfigurationSupport类,我使用的是前者,我们查看一下该接口,定义如下:
public interface WebMvcConfigurer {