인프런 커뮤니티 질문&답변

aj4941님의 프로필 이미지

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

서블릿 필터 - 요청 로그

필터 등록시 @Configuration과 @Bean

해결된 질문

작성

·

576

0

안녕하세요. 서블릿 필터 - 요청로그 편을 공부하다가 궁금한 점이 생겼습니다.

 

처음에 LogFilter를 만들고 이것을 등록하기 위해

WebConfig를 만든 후 @Configuration 처리와

FilterRegistrationBean을 반환하는 메서드 logFilter를

@Bean 처리한 후에 여기다가 LogFilter를 등록하는 것

까지는 이해했는데 이렇게 등록한 빈을 사용하려면

스프링 기본편에서 ApplicationContext를 이용하여

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(WebConfig.class);

이렇게 작성해야 사용할 수 있는 것 같은데 그 작업이

없어서 어떻게 사용할 수 있는지 궁금합니다.

답변 1

5

안녕하세요. aj4941님, 공식 서포터즈 David입니다.

이렇게 등록한 빈을 사용하려면

스프링 기본편에서 ApplicationContext를 이용하여

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(WebConfig.class);

이렇게 작성해야 사용할 수 있는 것 같은데

해당 과정은 WebConfig 클래스를 빈으로 등록하기 위함입니다.

이 과정을 대신할 수 있는 것이 @Configuration 입니다.

@Configuration 애노테이션은 내부에 @Component 를 사용하고 있으며 이로인해 컴포넌트 스캔 대상이되어 빈으로 등록됩니다.

이 부분은 스프링 핵심 기본편에서 다루고 있으므로 참고해 주세요.

또한, 이렇게 추가한 필터가 사용될 수 있는 이유는 FilterRegistrationBean 타입으로 등록된 빈을 조회하여 사용자가 추가한 필터를 웹서버의 필터로 등록해주는 과정이 진행되기 때문입니다.

감사합니다.

aj4941님의 프로필 이미지

작성한 질문수

질문하기