異なるインターセプターに異なるURLをマッピングすることも、単一のインターセプターに複数のURLをマッピングすることもできます。除外オプションもあるかどうか知りたいです。たとえば、アプリケーションに50個のURLマッピングがあり、1個のマッピングを除いて、49個のマッピングの構成を記述するのではなく、すべてのインターセプターを呼び出したい場合、*と50個目のURLを除外するだけでいいですか?
HandlerInterceptor
sは、(複数の)特定のURLまたはURLパターンに適用または除外できます。
MVC Interceptor Configuration を参照してください。
ここにドキュメントの例があります
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LocaleInterceptor());
registry.addInterceptor(new ThemeInterceptor()).addPathPatterns("/**").excludePathPatterns("/admin/**");
// multiple urls (same is possible for `exludePathPatterns`)
registry.addInterceptor(new SecurityInterceptor()).addPathPatterns("/secure/*", "/admin/**", "/profile/**");
}
}
またはXML構成を使用
<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:interceptor>
<!-- intercept multiple urls -->
<mvc:mapping path="/secure/*"/>
<mvc:mapping path="/admin/**"/>
<mvc:mapping path="/profile/**"/>
<bean class="org.example.SecurityInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>