[英]Spring HandlerInterceptor mapping with annotations
美好的一天。 我有一個spring mvc應用程序和2個控制器。 第一個控制器(PublicController)可以處理來自所有用戶的請求,Second(PrivateController)只能處理授權用戶。
所以我實現了兩個Handler Interceptor
@Configuration
@EnableWebMvc
@ComponentScan(basePackages="webapp.base.package")
public class WebApplicationConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoggerInterceptor());
registry.addInterceptor(new AccessInterceptor());
}
}
我需要我的LoggerInterceptor
來處理所有控制器的請求,而我的AccessInterceptor
只需要處理PrivateController
的請求。 我必須使用注釋將Interceptors
映射到Controllers
解決它。
@Configuration
@EnableWebMvc
@ComponentScan(basePackages="webapp.base.package")
public class WebApplicationConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoggerInterceptor()).addPathPatterns("/**");;
registry.addInterceptor(new AccessInterceptor()).addPathPatterns("/private/**");;
}
}
我不知道為什么,當我用你的方式,它工作。 但攔截器執行了兩次。 我發現了另一種方法。
@Bean
public MappedInterceptor interceptor() {
return new MappedInterceptor(null, new String[]{"/","/**/*.js", "/**/*.html", "/**/*.css"}, new LogInterceptor());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.