작성한 질문수
스프링 핵심 원리 - 기본편
프로토타입 스코프
작성
·
277
0
ac.close() 로 컨테이너를 종료하고 빈의 destroy() 메소드까지 호출이 된 상태인데요, 그 다음 destroy() 메소드를 호출했더니 빈이 없어져 에러가 날 줄 알았는데 정상작동 합니다.
싱글톤 빈은 컨테이너가 종료될 때까지 관리를 하기 때문에 close 되면 없어질거라 생각했는데 제 이해가 틀린건가요?
종료될 시 어떻게 컨테이너가 동작하는지 궁금합니다.
답변 1
1
안녕하세요. ms님
컨테이너 종료 전에 이미 빈을 조회해서 참조하고 있습니다.
이렇게 되면 자바에서 객체의 참조를 스프링 컨테이너 외에 다른곳에서도 가지게 됩니다.
자바는 이 경우 해당 객체를 GC하지 않고 유지해줍니다.
현재 테스트 코드가 참조하는 bean1의 지역변수가 제가되면 그때 bean1 인스턴스도 GC 대상이 됩니다.
감사합니다.