더북(TheBook)

4.2.3 시동 순서를 결정

이쯤에서 한 가지 의문이 생깁니다. 만약 이렇게 생성한 싱글톤이 다른 리소스에 의존한다면 즉 어떤 리소스가 준비된 연후에 싱글톤을 생성해야 한다면 어떻게 할까요? 그런 일이 있을까 싶지만 의외로 그런 경우가 적지 않습니다. DB에서 메시지 데이터를 조회하여 캐시하는 싱글톤이 그렇습니다. 대수롭지 않은 듯하지만 지극히 일반적인 읽기 전용 DB 조회 역시 다른 서비스에 의존할 가능성이 있습니다. 접속 풀(connection pool)을 또 다른 싱글톤으로 생성하거나, 그보단 조금 발전시켜 로깅을 다른 싱글톤에 의존하는 건 또 어떤가요? 자바 EE에서는 이런 문제를 애너테이션으로 간단히 해결할 수 있습니다. 클래스 앞에 @DependsOn을 붙이고 이 클래스가 의존하는 빈 이름을 인자로 주면 되니까요(코드 4-9). 이런 식으로 싱글톤 시동 순서를 정합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.