제목에 설명되어 있습니다.Jar로 실행되는 Spring 부트 프로젝트는 web.xml 파일이 필요합니까?
XML 기반 구성을 사용하는 Spring MVC 애플리케이션을 마이그레이션하려고합니다.
web.xml 파일에있는 필터를 새 Spring Boot Project로 이동할 위치를 알 수 없습니다. 봄 부팅을 사용하는 경우 자세한 내용은 here
제목에 설명되어 있습니다.Jar로 실행되는 Spring 부트 프로젝트는 web.xml 파일이 필요합니까?
XML 기반 구성을 사용하는 Spring MVC 애플리케이션을 마이그레이션하려고합니다.
web.xml 파일에있는 필터를 새 Spring Boot Project로 이동할 위치를 알 수 없습니다. 봄 부팅을 사용하는 경우 자세한 내용은 here
당신은 주석을 사용할 수있다.
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
맞습니다.하지만 이전 xml 구성 대신 Java를 사용하는 것을 선호합니다. –
스프링 부트와 동등한 방법으로 필터를 움직이기 위해 프로그래밍 방식으로 동등한 것을 사용하려면 프로그래밍 방식으로'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 /) –
당신은 자바 구성을 사용하여 필터를 정의 할 수 있습니다 찾기 @ImportResource
이 에 대한 :
마지막으로 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;
}
}
맞아요. 이전 xml 구성 대신 Java를 사용하는 것을 선호합니다. –