작성
·
212
0
MemberJpaRepositoryTest 부분에서
위처럼 memberJpaRepository.getClass()를 출력하면
바이트 조작된 MemberJpaRepository가 주입된 것을 볼수 있는데 , 이 부분에서 한가지 궁금한 점이 생겼습니다.
제가 지금까지 이해한 것은 , 스프링 컨테이너에만 바이트 조작코드가 붙어 싱글톤을 유지해 주는것으로 알고 있었는데,
memberJpaRepository값 또한 바이트 조작된 구현객체가 주입된 것을 보니 왜 이렇게 되는것인지 궁금합니다.
답변 2
1
안녕하세요. jsungmin6님, 공식 서포터즈 OMG입니다.
스프링 핵심원리 강의 수강을 권장드린다는 답변을 추가적으로 드리려고 혹시 수강 내역이 있으신지 질문 게시판에 검색을 해보니 질문 내역이 있으시더라구요.
해당 질문에 대해 제가 답변 드렸었고 해당 질문 내용에서 지금 질문 내용에 대한것도 확인할 수 있었습니다.
싱글톤 그리고 Configuration 에 대해 제가 이해한것은 AppConfig 처럼 설정파일에 Configuration 이라는 애노테이션을 달아줄 경우, 바이트 조작이 되어, AppConfig 라는 설정파일 안에 존재하는 빈 객체들을 싱글톤으로 유지하도록 해주는것으로 이해했습니다.
위에 표시한 내용에 대해 혼선이 오신걸로 보여요. 싱글톤으로 관리하는 객체는 설정파일에 수동으로 등록한 Bean 뿐만 아니라 @Component, @Repository, @Configuration, @Controller, @Repository 등 자동으로 Bean 등록이 되는 객체도 싱글톤으로 관리가 되기 때문에 MemberJpaRepository 클래스 위에 5개의 어노테이션 중 하나가 선언되어 있다면 올리신 이미지 처럼 동작하는게 맞습니다.
감사합니다.
0