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

edwin.dkim님의 프로필 이미지
edwin.dkim

작성한 질문수

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

9강 빈 객체의 생명주기

9강 16:50초

작성

·

45

0

default-init-method와 , default-destroy-method를 bean태그 안이 아니고 beans 태그 안에 넣으셨는데, 이렇게 하면 default-destroy-method나 default-init-method를 bean 태그 안에 안 넣으면 자동으로 실행을 해주는 거잖아요.

그럼 만약에 TestBean2 클래스안에 default_init, default_destroy와 똑같은 이름의 메서드가 없으면 실행 안하는걸로 이해했는데 맞나요?
그리고 id가 t1인 bean태그에 init-method, destroy-method를 안썼다면 beans태그에 작성해놓은 default 속성들이 실행이 될텐데 똑같은 이름의 메서드가 있으면 id-t1인 bean 객체에도 default 속성에 지정해놓은 메서드가 실행되는건가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. edwin.dkim님, 질문해주셔서 감사합니다.

스프링 설정에서 default-init-methoddefault-destroy-method 속성은 beans 태그에 정의함으로써, 개별적인 bean 태그에 메서드를 별도로 명시하지 않아도 기본적으로 해당 메서드들이 호출되도록 합니다.

  1. 메서드가 없는 경우: TestBean2 클래스에 default_init, default_destroy와 같은 메서드가 없으면, 당연히 호출할 메서드가 없기 때문에 실행되지 않습니다. 따라서, 해당 메서드들이 클래스에 존재해야만 기본 설정에 의해 자동으로 호출됩니다.

  2. 개별 bean 설정이 없는 경우: 만약 idt1bean 태그에 init-methoddestroy-method가 명시되어 있지 않고, beans 태그에 default-init-methoddefault-destroy-method가 설정되어 있다면, t1 객체가 초기화되거나 소멸될 때 default 속성에 지정된 메서드가 실행됩니다. 즉, 메서드가 객체에 존재하는 경우에 한해 자동으로 호출됩니다.

이와 관련된 질문에서 더 자세한 답변을 원하신다면, 아래의 유사 질문 링크를 참고해보세요:
- 그러면 prototype에 lazt-init 설정하는 건 무의미한 건가요?

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

edwin.dkim님의 프로필 이미지
edwin.dkim

작성한 질문수

질문하기