이 기사는 주로 콩의 범위 및 수명주기에 대한 관련 내용을 다음과 같이 탐색합니다.
콩의 범위
Spring 3은 Bean의 5 가지 스코프, 즉 Singleton (Singleton), 프로토 타입 (프로토 타입), 요청, 세션 및 글로벌 세션을 정의합니다. 다섯 범위는 다음과 같이 설명됩니다.
1. Singleton : Singleton 모드, Spring IOC 컨테이너에는 하나의 공유 Bean 인스턴스 만 있습니다. 콩 수에 관계없이 항상 동일한 물체를 가리 킵니다. 싱글 톤 범위는 봄의 기본 범위입니다. 콩을 싱글 톤 모드로 정의하고 다음과 같이 구성 할 수도 있습니다.
<bean id="userDao" scope="singleton"/>
2. 프로토 타입 : 프로토 타입 모드. 스프링 컨테이너를 통해 프로토 타입 정의 콩을 얻을 때마다 컨테이너는 새로운 Bean 인스턴스를 만듭니다. 각 Bean 인스턴스에는 고유 한 속성과 상태가 있으며 싱글 톤은 전 세계 컨텍스트에 하나의 객체 만 있습니다. 일반적으로 상태가 많은 콩에 프로토 타입 범위를 사용하고 무국적 콩의 싱글 톤 범위를 사용하십시오.
3. 요청 : HTTP 요청에서 컨테이너는 Bean의 동일한 인스턴스를 반환합니다. 그러나 다른 HTTP 요청에 대해 새 콩이 생성되며 Bean은 현재 HTTP 요청 내에서만 유효합니다.
<bean id="loginAction" scope="request"/> 각 HTTP 요청에 대해 스프링 컨테이너는 Bean의 정의에 따라 새로운 인스턴스를 생성하며 인스턴스는 현재 HTTP 요청 내에서만 유효하며 다른 요청은 현재 요청의 상태 변경을 볼 수 없습니다. 현재 HTTP 요청이 종료되면 Bean 인스턴스도 파괴됩니다.
4. 세션 : HTTP 세션에서 컨테이너는 동일한 콩 인스턴스를 반환합니다. 다른 세션 요청의 경우 새 인스턴스가 생성되고 Bean 인스턴스는 현재 세션 내에서만 유효합니다.
<bean id="userPreference" scope="session"/> , HTTP 요청과 동일하고 모든 세션 요청마다 새 인스턴스를 생성하며 다른 인스턴스간에 속성이 공유되지 않으며 인스턴스는 자체 세션 요청 내에서만 유효합니다. 요청이 종료되면 인스턴스가 파괴됩니다.
5. 글로벌 세션 : 글로벌 HTTP 세션에서 컨테이너는 콩의 동일한 인스턴스를 반환합니다. 이는 포틀릿 컨텍스트를 사용할 때만 유효합니다.
콩의 수명주기
위에서 언급 한 바와 같이 콩의 범위가 도입 된 후, 콩의 수명주기는 콩의 범위에 따라 설명 될 것입니다.
스프링 컨테이너는 싱글 톤 범위에서 콩의 수명주기를 관리 할 수 있습니다. 이 범위에서 Spring은 콩이 언제 생성되는시기, 초기화가 완료되는시기 및 파괴 될 때를 정확히 알 수 있습니다. 프로토 타입 스코프 빈의 경우 Spring은 제작에만 책임이 있습니다. 컨테이너가 Bean 인스턴스를 생성하면 Bean 인스턴스가 클라이언트의 코드 관리에 전달됩니다. 스프링 컨테이너는 더 이상 수명주기를 추적하지 않으며 프로토 타입 범위로 구성된 콩의 수명주기를 관리하지 않습니다. 봄에 콩의 수명주기를 실행하는 것은 매우 복잡한 프로세스이며, 독자는 Spring에서 제공 한 방법을 사용하여 Bean Creation Process를 사용자 정의 할 수 있습니다. 스프링 컨테이너는 Bean 인스턴스를 사용할 수 있도록 많은 작업을 수행합니다.
요약
위의 것은이 기사에서 봄에 콩의 범위와 수명주기를 논의하는 것입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!