스프링 부트 웹 애플리케이션에서 서블릿 필터를 구성하고 싶습니다. @Value 주석을 사용하여 일부 Bean 및 특성을 자동 작동시키고 싶습니다.구성 요소 스프링 부트로 서블릿 필터
@Configuration
public class MyWebConfig{
@Autowire
MyFilter filter;
@Autowire
MyAnotherFilter anotherFilter;
@Bean
public FilterRegistrationBean someFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(filter);
registration.setOrder(1);
return registration;
}
@Bean
public FilterRegistrationBean someFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(anotherFilter);
registration.setOrder(2);
return registration;
}
}
그리고 (간결을위한 하나의 필터를 표시) 필터를 모두 구성했습니다 : :이 사용하여 다음과 같은 구성을 달성 할 수 있었다
@Configuration
public class MyFilter implements Filter{
@Value("${my.property.key}")
private String myProperty;
public void doFilter(...){
....
}
//init and destroy stubs
....
}
모든 것이 잘 작동합니다. 여전히 나는 몇 가지 질문이 있습니다 :
1) FilterRegistrationBean 코드를 주석 처리 할 때도 작동합니다. 특정 순서를 설정하려면 FilterRegistrationBean을 사용해야한다고 생각합니다. 옳은?
2) FilterRegistrationBean없이 URL 패턴과 같은 다른 설정이나 순서를 설정할 수있는 방법이 있습니까?
3) @Configuration 주석을 @Configuration 주석으로 대체 할 수 있다고 생각합니다.
4) 마지막으로 Filter 클래스 자체를 @ Component/@ Configuration으로 표시하는 것이 좋습니까?
주 응용 프로그램 클래스에서 @SpringBootApplication을 사용하고 있습니다.