对于最新稳定版本,请使用Spring Framework 7.0.1spring-doc.cadn.net.cn

拦截 器

在 Java 配置中,你可以注册拦截器以应用到收到的请求,具体为 以下示例展示了:spring-doc.cadn.net.cn

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		registry.addInterceptor(new LocaleChangeInterceptor());
		registry.addInterceptor(new ThemeChangeInterceptor()).addPathPatterns("/**").excludePathPatterns("/admin/**");
	}
}
@Configuration
@EnableWebMvc
class WebConfig : WebMvcConfigurer {

	override fun addInterceptors(registry: InterceptorRegistry) {
		registry.addInterceptor(LocaleChangeInterceptor())
		registry.addInterceptor(ThemeChangeInterceptor()).addPathPatterns("/**").excludePathPatterns("/admin/**")
	}
}

以下示例展示了如何在XML中实现相同的配置:spring-doc.cadn.net.cn

<mvc:interceptors>
	<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>
	<mvc:interceptor>
		<mvc:mapping path="/**"/>
		<mvc:exclude-mapping path="/admin/**"/>
		<bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor"/>
	</mvc:interceptor>
</mvc:interceptors>
拦截器并不理想地作为安全层,因为其潜在的 与带注释的控制器路径匹配不匹配。一般来说,我们建议使用春季 安全性,或类似于与Servlet滤波链集成的方法, 并尽早申请。
XML 配置声明拦截器为地图拦截者豆子,那些已经开始了 任何处理器映射豆子,包括其他框架的豆子。 相比之下,Java 配置只将拦截器传递给处理器映射豆子,它做到了。 在Spring MVC及其他框架中重复使用相同的拦截器处理器映射带有MVC Java配置的豆子,可以声明地图拦截者豆子(还有别的 在 Java 配置中手动添加),或者在两者中配置相同的拦截器 Java 配置以及其他处理器映射豆。