- 스프링 컨테이너 (XMLBeanFactory)가 Spring에 의해 정상적으로 언로드되는 경우는 언제입니까?
- 응용 프로그램이 실행 중이지만 BeanFactory에 대한 처리기 만 범위를 벗어나면 어떻게됩니까?
- 스프링 컨테이너를로드하는 가장 좋은 방법은 무엇입니까?
handler = new BeanFactory()
올바른 접근 방식을 취하고 있습니까?
업데이트 :
컨테이너가 범위를 벗어나 때, 우리는 참으로 close() 메소드가있는 것 차례 릴리스의 모든 보유 자원을 호출 할 것으로 예상한다. 그러나 그것은 일어나지 않습니다! 스프링 컨테이너가 범위를 벗어나지 만 여전히 메모리가 가득 찬 경우가 발생했습니다 (OutOfMemory 오류). 그 이유는 Spring 컨테이너로 생성 된 SessionFactory 객체가 정적으로 생성 될 때 결코 가비지 수집되지 않기 때문입니다. 이는 컨테이너가 범위를 벗어 났을 때 close()->destroy()
이 호출되지 않았 음을 의미합니다. Spring 자체에 누수 문제가 있다고 생각하게 만듭니다.Spring BeanFactory로드 및 언로드
감사합니다. Matt. (1)과 (3)은 상당히 도움이되었습니다. (2)를 위해, 나는 진짜 관심사가있다. 업데이트를 참조하십시오. – Leo
close()가 finalizer의 일부가 아닌 경우 웹 응용 프로그램 컨텍스트가 종료되거나 JVM이 종료 될 때 누가이 메서드를 트리거합니까? – Leo