2016-09-09 65 views

回答

0

您可以使用註釋:本 @ImportResource尋找更多細節here

+0

沒錯,但我更喜歡使用Java而不是舊的xml配置。 –

+0

爲了使用編程等價物在彈簧啓動等價物中移動過濾器,可以通過編程方式配置'ServletContext'。這將需要實現'WebApplicationInitializer'。覆蓋onStartup方法 public void onStartup(ServletContext container)throws ServletException container.addFilter(「YourFilter1」,YourFilter.class).addMappingForUrlPatterns(null,false,「/ *」); }' 整個遷移的一個很好的解釋可以參見[這裏](http://www.robinhowlett.com/blog/2013/02/13/spring-app-migration-from-xml-to-java基-配置/) –

0

您可以使用Java的配置定義過濾器使用Spring啓動時。

正如在documentation中所提到的,您只需要將該過濾器聲明爲配置類中的Bean即可。

@Configuration 
public class WebConfig { 

@Bean 
public Filter someFilter() { 
return new someFilter(); 
} 
} 

如果由於某種原因「SomeFilter」不是春託管Bean,或者如果你需要自定義過濾器的行爲,那麼你可以按照如下

@Configuration 
public class WebConfig { 

@Bean 
public Filter someFilter() { 
return new someFilter(); 
} 

@Bean 
public FilterRegistrationBean someFilterRegistration() { 

    FilterRegistrationBean registration = new FilterRegistrationBean(); 
    registration.setFilter(someFilter()); 
    return registration; 
} 

} 

如果註冊使用FilterRegistrationBean過濾器的多個過濾器,你可以使用FilterRegistrationBean.setOrder()指定順序in the doc

0

最後,我用這種方式使用Java配置(no xml)註冊了攔截器。

@Configuration 
@EnableWebMvc 
public class WebConfig extends WebMvcConfigurerAdapter { 

    @Autowired 
    ControllerInterceptor controllerInterceptor; 

    @Override 
    public void addInterceptors(InterceptorRegistry registry) { 

     registry.addInterceptor(this.controllerInterceptor).addPathPatterns(this.buildPaths()); 
    } 

    private String[] buildPaths() { 

     String paths[] = { "/api/example1/**", "/api/example2/**" }; 

     return paths; 
    } 
} 
相關問題