복붙노트

[SPRING] 봄 콩 범위. 싱글 톤과 프로토 타입

SPRING

봄 콩 범위. 싱글 톤과 프로토 타입

ClassA와 ClassB의 두 클래스를 가정 해 봅시다. ClassB가 ClassA에 의존한다고 가정 해 봅시다. 구성 파일에서 ClassA의 범위를 싱글 톤으로 정의하고 ClassB의 범위를 Prototype으로 정의하면 ClassA의 빈 인스턴스를 만들 때마다 ClassB의 인스턴스가 어떻게됩니까? ClassA의 인스턴스가 반환 될 때마다 동일한 ClassB 인스턴스가 반환되거나 새 인스턴스가 만들어 집니까?

고맙습니다!!!

해결법

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

    1.Class가 프로토 타입 인 경우 클래스 B의 새 인스턴스가 항상 만들어지며 생성시 다른 클래스를 처리하지 않습니다.

    Class가 프로토 타입 인 경우 클래스 B의 새 인스턴스가 항상 만들어지며 생성시 다른 클래스를 처리하지 않습니다.

    그래서 ClassB 프로토 타입과 ClassA 싱글 톤, 당신은 ClassB의 N 인스턴스와 ClassA의 유일한 시점에서 귀하의 응용 프로그램에있을 수 있습니다.

    귀하의 경우, 애플리케이션 라이프 사이클에 ClassA 인스턴스가 하나만 존재하기 때문에 애플리케이션의 다른 Bean이 참조하는 다른 ClassB와는 다른 하나의 인스턴스 ClassB 만 갖게됩니다

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

    2.ClassA는 싱글 톤이므로 ClassB의 모든 인스턴스간에 단일 인스턴스가 공유됩니다.

    ClassA는 싱글 톤이므로 ClassB의 모든 인스턴스간에 단일 인스턴스가 공유됩니다.

    나는 당신이 여기에 있다고 생각한다. 동일한 Class 인스턴스가 리턴되거나 새로운 인스턴스가 생성 될 것이다. Class의 인스턴스가 반환 될 때마다?

    Class 인스턴스가 생성 될 때마다 공유 Class 인스턴스가 (재) 사용됩니다.

  3. ==============================

    3.ClassA가 싱글 톤이면 아무 것도 인스턴스화되지 않습니다.

    ClassA가 싱글 톤이면 아무 것도 인스턴스화되지 않습니다.

    prototype bean이기 때문에 다른 인스턴스. 그러나 ClassA가 싱글 톤이기 때문에 매번 같은 방식으로 인스턴스화됩니다 (언급 한 클래스 간의 관계에 따라 다름)

  4. from https://stackoverflow.com/questions/19382850/spring-bean-scope-singleton-and-prototype by cc-by-sa and MIT license