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

이승훈님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

request 스코프 예제 만들기

coreApplciation 생성자 호출 2번

작성

·

398

0

제가 MyLogger의 생성 시기를 살펴보려고 하다가 발견한 사실입니다. CoreApplication을 실행시키면 MemberServiceImpl 이나 OrderServiceImpl의 생성자가 2번씩 호출이 됩니다.

그래서 제가 잘못한 점이 있나 단순히 ApplicationContext로 호출한 코드를 살펴보니 각각 한번씩만 호출되었습니다. 그래서 싱글톤에 문제는 없다고 생각이 되는데 CoreApplication을 호출하면 2번씩 생성자가 불리는지 궁금합니다.

감사합니다.

답변 2

1

이승훈님의 프로필 이미지
이승훈
질문자

https://github.com/q6801/start-spring/tree/master/hello-spring

깃허브에 코드를 올렸습니다.

생성자가 호출되는 것은 MemberServiceImpl 클래스와 OrderServiceImpl의 생성자 부분에 system.out.println을 작성하여서 봤습니다.

coreApplciation을 호출한 경우에는 MemberServiceImpl과 OrderServiceImpl이 2번 실행되는데 전에 만들어둔 AppConfig나 AutoAppConfig로 빈들을 등록할 떄는 한번씩만 호출되는 모습이 나타났습니다.

안녕하세요 이승훈님.

코드를 확인하여 보았으나, 생성자가 두번 출력되는 경우를 확인하지 못하였습니다. 제가 확인한 내역은

1) MemberServiceImpl 과 OrderServiceImpl 생성자에 아래와 같이 출력하도록 추가.

2) MemberApp 에서 CoreApplication 을 기반으로 애플리케이션 실행.

3) 결과는 아래와 같이 MemberServiceImpl과 OrderServiceImpl이 한번씩 호출되었습니다.

어떤 경우에 두번씩 출력되는지 확인 부탁드립니다.

감사합니다.

0

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

.

작성하신 프로젝트 코드 전체를 구글 드라이브에 공유해주시겠어요?

자세한 내용은 코드를 살펴봐야 할 것 같습니다.

그리고 생성자가 두번 호출된다는 부분을 어떻게 체크하셨는지도 남겨주시기 바랍니다.

.
감사합니다.