作为Jar运行的Spring Boot项目是否需要web.xml文件?

时间:2016-09-09 17:17:47

标签: spring-boot

正如标题所述。

我正在迁移使用基于XML的配置的Spring-MVC应用程序。

我不知道将web.xml文件中的过滤器移动到新的Spring Boot Project的位置。

3 个答案:

答案 0 :(得分:0)

您可以使用注释:@ImportResource 查找更多详情here

答案 1 :(得分:0)

使用Spring Boot时,您可以使用Java配置定义过滤器。

documentation中所述,您只需要在配置类中将该过滤器声明为Bean。

@Configuration
public class WebConfig {

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

如果出于某种原因" SomeFilter"不是Spring托管bean,或者如果您需要自定义过滤器行为,那么您可以使用FilterRegistrationBean注册过滤器,如下所示

@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.setOrder()指定订单,如上所述in the doc

答案 2 :(得分:0)

最后我用这种方式使用Java配置(没有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;
    }
}