2017-09-08 76 views
0

什麼是Java配置替代Spring MVC的XML命名空間的<mvc:interceptor>標籤:綁定Spring MVC的攔截器與Java配置中的URL

<mvc:interceptors> 
    <mvc:interceptor> 
     <mvc:mapping path="/some/specific/path"/> 
     <ref bean="XX" /> 
    <mvc:interceptor> 
<mvc:interceptors> 

我知道重寫的WebMvcConfigurerAdapteraddInterceptors()方法,但我在映射特別感興趣我的攔截器對某些URL(或控制器)。

回答

1

您可以配置攔截器並通過Java配置將它們映射到URL。

@Configuration 
    @EnableWebMvc 
    public class WebConfiguration extends WebMvcConfigurerAdapter { 

     @Override 
     public void addInterceptors(InterceptorRegistry registry) { 
      registry.addInterceptor(new DetailInterceptor()).addPathPatterns("/activities/{activityId}"); 
      registry.addInterceptor(new CollectionInterceptor()).addPathPatterns("/activities"); 
     } 
    } 
+0

謝謝,這就是我一直在尋找的。在Spring的HATEOAS API中是否也有類似於ControllerLinkBuilder的linkTo(Class)的方法?即根據控制器的URL映射添加URL模式。 – Wecherowski

+0

正如你所說,你可以ControllerLinkBuilder用戶,並獲得一個URL模式,這種方式: linkTo(methodOn(ActivityController.class).getActivity(null))。toString() 但在配置中,它拋出NullPointerException ...我猜在控制器bean之前加載配置。這是另一個需要解決的問題。 – Cyva