작성
·
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-method
와 default-destroy-method
속성은 beans
태그에 정의함으로써, 개별적인 bean
태그에 메서드를 별도로 명시하지 않아도 기본적으로 해당 메서드들이 호출되도록 합니다.
메서드가 없는 경우: TestBean2
클래스에 default_init
, default_destroy
와 같은 메서드가 없으면, 당연히 호출할 메서드가 없기 때문에 실행되지 않습니다. 따라서, 해당 메서드들이 클래스에 존재해야만 기본 설정에 의해 자동으로 호출됩니다.
개별 bean 설정이 없는 경우: 만약 id
가 t1
인 bean
태그에 init-method
와 destroy-method
가 명시되어 있지 않고, beans
태그에 default-init-method
와 default-destroy-method
가 설정되어 있다면, t1
객체가 초기화되거나 소멸될 때 default
속성에 지정된 메서드가 실행됩니다. 즉, 메서드가 객체에 존재하는 경우에 한해 자동으로 호출됩니다.
이와 관련된 질문에서 더 자세한 답변을 원하신다면, 아래의 유사 질문 링크를 참고해보세요:
- 그러면 prototype에 lazt-init 설정하는 건 무의미한 건가요?
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.