클래스 인스턴스 초기화를 할 때 호출할 initMethod()와 destroyMethod()를 만들어 놓았고,
applicationContext.xml 파일에 bean을 등록하는 상황에서 init-method, destroy-method 속성 값으로 콜백 될 메서드를 넣어주었다.
스코프를 singleton으로 설정한 것과 prototype으로 설정한 것을 비교하는 상황이었다.
singleton은 간단하게 하나의 객체만 생성이 되도록 해주는 것이니 아래처럼 작성했더라도 하나의 빈을 반환한다.


이와 다르게 prototype은 불릴 때마다 새로운 빈을 생성하여 init 메소드가 3번이 불리는 것을 볼 수 있다.


그런데 여기서 궁금증이 생겼다.
init 메소드는 실행이 되었는데, destroy 메소드는 어디에..?
결론은 프로토타입이 스프링 빈을 클라이언트에 반환한 이후로는 관리하지 않기 때문에 소멸 메소드는 자체적으로 관리해야 한단다.
이와 관련해서 더 깊게 알고 싶다면 아래 포스팅을 참조하면 아주 자세하게 알 수 있을 것이다.
감사합니다!
'지식' 카테고리의 다른 글
[시험] 비전공자 정보처리기사 필기 3주 합격 후기 (0) | 2025.02.21 |
---|---|
[깃허브] .DS_Store 파일이 도대체 뭘까? 삭제 방법까지 (3) | 2024.12.26 |
[JAVA] 변수의 기본형과 참조형 타입 정리 (0) | 2024.08.27 |
[자바 필수] method의 4가지 형태 (리턴형과 매개변수) (0) | 2024.08.21 |
[Spring] IoC와 AOP 이제는 이해해보자 (0) | 2024.06.25 |