복붙노트

[SPRING] Spring : 프로토 타입 범위의 bean을 완전히 종료시키는 법?

SPRING

Spring : 프로토 타입 범위의 bean을 완전히 종료시키는 법?

bean이 "prototype"으로 범위를 정할 때 Spring 문서에 따르면 Spring은 객체의 전체 라이프 사이클을 관리하지 않는다. 보다 구체적으로 파괴 수명주기 콜백은 호출되지 않습니다. 클라이언트 코드는 필요한 정리 작업을 수행해야합니다. 스프링 문서는 또한이 목적을 위해 커스텀 bean post-processor를 사용할 것을 제안한다. 그러나 "BeanPostProcessor"인터페이스에는 Bean을 초기화하기 전후의 콜백 메소드 만 포함됩니다. desctruction 콜백 메소드가 없습니다. 그런 다음 프로토 타입 범위 콩에서 얻은 리소스를 어디에서 어떻게 릴리스 하시겠습니까?

해결법

  1. ==============================

    1.당신이 찾고있는 것은 DestructionAwareBeanPostProcessor입니다. 이것은 BeanPostProcessor의 하위 인터페이스입니다.

    당신이 찾고있는 것은 DestructionAwareBeanPostProcessor입니다. 이것은 BeanPostProcessor의 하위 인터페이스입니다.

    해당 인터페이스의 새 구현을 직접 만들거나 CommonAnnotationBeanProcessor와 같은 구현 클래스 중 하나를 사용할 수 있습니다.

  2. ==============================

    2.프로토 타입 범위의 Bean을 종료하는 유일한 방법은 명시 적으로 "파괴"방법 중 일부를 호출하여 자원을 처분하는 것입니다. Phantom References를 사용할 수도 있습니다. 다른 유형의 참조에 대한 자세한 정보가 있습니다.

    프로토 타입 범위의 Bean을 종료하는 유일한 방법은 명시 적으로 "파괴"방법 중 일부를 호출하여 자원을 처분하는 것입니다. Phantom References를 사용할 수도 있습니다. 다른 유형의 참조에 대한 자세한 정보가 있습니다.

  3. from https://stackoverflow.com/questions/8154736/spring-how-to-cleanly-terminate-prototype-scoped-beans by cc-by-sa and MIT license