• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

세 가지 질문이 있습니다.

20.03.03 22:42 작성 조회수 151

0

1. 강의 예제에서 BookService와 BookRepository 둘 다 Bean으로 관리하도록 했습니다. BookRepository는 BookService에서 사용하므로 Bean으로 관리해야 할 것 같은데, BookService를 Bean으로 관리하는 이유가 있을까요?

2. 강의의 예제에서 @Autowired를 사용해 BookRepository에 빈 객체가 주입된 경우 @PostConstruct Annotation이 있는 메소드가 실행되는 건가요?

3. 만약 의존성을 여러 번 주입해야 한다면, @PostConstruct 이 설정된 메소드는 언제 실행되나요?

답변 1

답변을 작성해보세요.

2

1. 다른 빈을 주입 받으려면 빈이어야 합니다.

2. 빈을 주입 받은 경우에 @PostConstruct를 쓸 수 있는게 아니라, 빈으로 등록이 되어 있으면 그 빈을 만들고 나서 @PostContstruct를 빈의 라이프사이클 콜백으로 생각하고 실행해 주는 겁니다.

3. 2에서 말씀 드린대로, 빈 주입에 대한 콜백이 아니라, 빈 생성에 관련된 라이프사이클이니 여러 빈을 주입 받더라고 상관없이, 빈이 만들어졌고, 다른 빈들 주입도 다 받은 다음에 실행해 줍니다.