해결된 질문
작성
·
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 타입으로 등록된 빈을 조회하여 사용자가 추가한 필터를 웹서버의 필터로 등록해주는 과정이 진행되기 때문입니다.
감사합니다.