2016-09-09 1 views
1

제목에 설명되어 있습니다.Jar로 실행되는 Spring 부트 프로젝트는 web.xml 파일이 필요합니까?

XML 기반 구성을 사용하는 Spring MVC 애플리케이션을 마이그레이션하려고합니다.

web.xml 파일에있는 필터를 새 Spring Boot Project로 이동할 위치를 알 수 없습니다. 봄 부팅을 사용하는 경우 자세한 내용은 here

+0

맞아요. 이전 xml 구성 대신 Java를 사용하는 것을 선호합니다. –

답변

0

당신은 주석을 사용할 수있다.

documentation에서 언급했듯이 구성 클래스에서 해당 필터를 Bean으로 선언하면됩니다.

@Configuration 
public class WebConfig { 

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

어떤 이유로 "SomeFilter는"스프링이 아닌 경우는 빈을 관리하거나 필터의 동작을 사용자 정의해야 할 경우 경우

@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

맞습니다.하지만 이전 xml 구성 대신 Java를 사용하는 것을 선호합니다. –

+0

스프링 부트와 동등한 방법으로 필터를 움직이기 위해 프로그래밍 방식으로 동등한 것을 사용하려면 프로그래밍 방식으로'ServletContext'를 설정할 수 있습니다. 이를 위해서는'WebApplicationInitializer'를 구현해야합니다. onStartup 메소드를 오버라이드한다. public void onStartup (ServletContext container)가 ServletException을 던진다. ( 컨테이너. addFilter ("YourFilter1", YourFilter.class) .addMappingForUrlPatterns (null, false, "/ *"); } ' 전체 마이그레이션에 대한 설명은 [여기]를 참조하십시오. (http://www.robinhowlett.com/blog/2013/02/13/spring-app-migration-from-xml-to-java -based-config /) –

0

당신은 자바 구성을 사용하여 필터를 정의 할 수 있습니다 찾기 @ImportResource이 에 대한 :

0

마지막으로 Java Configuration (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; 
    } 
} 
관련 문제