강의

멘토링

커뮤니티

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

dyko615님의 프로필 이미지
dyko615

작성한 질문수

윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정

9강 빈 객체의 생명주기

질문드립니다.

작성

·

174

0

<bean id="t1" class="kr.co.softcampus.beans.TestBean1" lazy-init="true" 

init-method="bean1_init" destroy-method="bean1_destroy" scope="prototype" />

해당내용으로 beans.xml 설정 후 ctx.close( ); 를 호출하면,  bean1_destroy메서드는 호출이 안되는것으로 확인되는데 왜그럴까요! 싱글톤일땐 정상호출 되지만, 프로토타입으로하니깐 각각 객체 생성되어, init메서드는 정상호출이되고 destroy메서드만 호출이안되서 질의드립니다.

답변 1

0

소프트캠퍼스님의 프로필 이미지
소프트캠퍼스
지식공유자

자바에서 객체는 가비지 컬렉션이 동작할 때 소멸됩니다. 

객체를 참조하는 변수나 컨테이너 등이 없을 경우 객체는 소멸의 대상이 되고

바로 소멸되지는 않습니다.

프로그램이 완전히 종료되거나 가비지 컬렉션이 동작해야 소멸이 되는데

이때, destroy 메서드가 호출된다고 생각하시면 됩니다.

사실 이 때문에 자바에서는 객체 소멸과 관계된 메서드는 사용하지 않는 편이기도 합니다.

dyko615님의 프로필 이미지
dyko615

작성한 질문수

질문하기