반응형

필터에서 DB에서 받아온 정보를 사용하고 싶은 경우가 발생하였다.

 

초기화 함수인 init에서 서비스단이나 DAO를 사용하면 아직 bean등록이 되지 않은 상태로 초기화함수를 사용할 수 없었고 @PostConstruct를 활용하여 데이터를 처리할 수 있었다.

 

어찌저찌 처리는 하였지만 sysout을 통해 찍어보니 로그가 3번씩 찍히는 현상을 발견하였다.

 

구조부터 spring문서나 2번이상 발생되는 자료를 찾아봤지만 딱히 찾을 수 없었는데, 원인은 소스의 설정방법에 문제가 있었다.

 

해당 필터를 빈등록을 하기 위해 @Component 어노테이션을 설정하였다.

여기서 문제는 web.xml에 필터태그로 필터를 추가 등록하면서 bean등록이 2번 되었기 때문이다.

 

문제가 된 소스부분

@component 설정
web.xml에 filter 설정

 

둘 중 한개의 설정을 제거하고 한번만 정상적으로 동작하는것을 확인 하였다.

반응형