강의

멘토링

커뮤니티

Inflearn Community Q&A

dyko6154693's profile image
dyko6154693

asked

Yoon Jae-seong's introductory course through hands-on experience for Spring Framework developers

9th Lecture: Bean Lifecycle

질문드립니다.

Written on

·

182

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메서드만 호출이안되서 질의드립니다.

springjava

Answer 1

0

softcampus님의 프로필 이미지
softcampus
Instructor

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

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

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

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

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

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

dyko6154693's profile image
dyko6154693

asked

Ask a question