Spring이 Singleton 클래스에서 2 개의 객체를 생성하는 이유는 무엇입니까?

블루 루커

내가 틀렸을 수도 있지만 Spring이 Singleton 클래스에서 두 개의 다른 객체를 만드는 이유를 알 수 없습니다. 다음은 코드입니다.

public class DbSingleTOn {

    private static DbSingleTOn dbSingleTOn = new DbSingleTOn();
    private DbSingleTOn() {
    }
    public static DbSingleTOn getInstance() {
        return dbSingleTOn;
    }
}

public class MyApp {

    public static void main(String[] args) {
        AbstractApplicationContext context = new ClassPathXmlApplicationContext(
                "spring-singleton.xml");
        DbSingleTOn dbSingleTOn = context.getBean(DbSingleTOn.class);
        System.out.println(dbSingleTOn.hashCode());

        DbSingleTOn dbSingleTOn1 = context.getBean(DbSingleTOn.class);
        System.out.println(dbSingleTOn1.hashCode());

        context.registerShutdownHook();
    }
}

Output:
18885489
17045421

스프링 구성 XML :

<bean id="bean1" class="com.singleton.DbSingleTOn" scope="prototype" >
    </bean>

"prototype"범위를 사용하여 일반 클래스에 대해 다른 개체를 가져올 것으로 예상되지만 "prototype"이 Singleton 클래스에서 2 개의 개체를 만드는 이유는 무엇입니까?

Sotirios Delimanolis

두가지. 첫째, Spring은 클래스가 어떻게 설정되어 있는지 전혀 알지 못합니다 (정말 상관하지 않습니다). 프로그래밍 패턴을 구현했다는 사실은 Spring에 아무런 의미가 없습니다. 둘째, Spring은 리플렉션을 사용하여 선언 한 빈 유형을 인스턴스화하므로 private생성자를 사용할 수 있습니다 .

Spring에서 프로토 타입 범위 빈을 요청할 때마다 빈의 새 인스턴스를 생성합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬에서 클래스를 인스턴스화하는 객체의 유형은 무엇입니까?

분류에서Dev

1베이스에서 파생 된 2 개의 클래스에서 2 개의 메서드를 결합하는 방법은 무엇입니까?

분류에서Dev

swiftui가 2 개의 서로 다른 환경 객체를 구별 할 수없는 이유는 무엇입니까?

분류에서Dev

For 루프가 화면에 둘 이상의 객체를 생성하지 않는 이유는 무엇입니까?

분류에서Dev

'findViewById ()'가 반환 한 'View'객체를 LinearLayout 클래스의 addView ()에 매개 변수로 전달할 때 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

new Class ()와 new Class {}를 사용하여 클래스에서 객체를 생성하는 것의 차이점은 무엇입니까?

분류에서Dev

Java가 수퍼 클래스의 생성자에 액세스 할 수없는 서브 클래스를 허용하지 않는 이유는 무엇입니까?

분류에서Dev

파이썬에서 동일한 클래스의 객체를 생성하는 여러 방법을 갖는 방법은 무엇입니까?

분류에서Dev

부모 인터페이스를 구현하는 클래스의 생성자로 interface 유형의 객체를 초기화하는 방법은 무엇입니까?

분류에서Dev

Java에서 두 개의 중첩 클래스가 예외를 발생시키는 이유는 무엇입니까?

분류에서Dev

indexOf가 동일한 클래스 객체의 배열에서 내 객체의 인덱스를 찾을 수있는 이유는 무엇입니까?

분류에서Dev

파이썬에서 클래스, 객체를 생성하는 적절한 방법은 무엇입니까

분류에서Dev

자식 클래스의 생성자를 사용하여 부모 클래스 개체를 인스턴스화 할 수있는 이유는 무엇입니까?

분류에서Dev

두 개 이상의 동일한 객체를 연속 상태에 추가 할 때 항상 동일한 키를 생성하는 이유는 무엇입니까?

분류에서Dev

이 개인 클래스에 2 개의 개인 변수를 추가해야하는 이유는 무엇입니까?

분류에서Dev

클래스 객체의 클래스 메서드가 메타 클래스를 반환하지 않는 이유는 무엇입니까?

분류에서Dev

목록 <슈퍼 클래스> 객체는 서브 클래스 개체에 캐스트 할 수 있습니다 이유는 무엇입니까?

분류에서Dev

전역 객체 생성자가 Arduino에서 처음 2 자만 인쇄하는 이유는 무엇입니까?

분류에서Dev

PHP 동일한 객체의 인스턴스를 2 개 이상 생성하는 경우 첫 번째 객체에서 정보를 검색 할 수 있습니까?

분류에서Dev

클래스의 객체에 정수 값을 할당 할 때 매개 변수화 된 생성자가 호출되는 이유는 무엇입니까?

분류에서Dev

C ++에서 정수 상수를 할당하여 Test 클래스의 객체를 초기화 할 수있는 이유는 무엇입니까?

분류에서Dev

stream () 메서드가없는 클래스의 객체에서 stream () 메서드를 호출 할 수있는 이유는 무엇입니까?

분류에서Dev

참조 유형과 부모 참조 유형에서 클래스 객체를 호딩하는 것의 차이점은 무엇입니까

분류에서Dev

최신 C ++에서 다른 클래스 유형의 객체를 하나의 컨테이너에 저장하는 방법은 무엇입니까?

분류에서Dev

클래스 객체 segfaults에서 boost :: interprocess를 사용하는 이유는 무엇입니까?

분류에서Dev

서브 클래스에서 개인 생성자를 상속하고 호출 할 수있는 이유는 무엇입니까?

분류에서Dev

개인 생성자를 정적 중첩 클래스와 결합하는 이유는 무엇입니까?

분류에서Dev

객체를 맵에 할당하면 빈 객체가 생성되는 이유는 무엇입니까?

분류에서Dev

HashMap에서 가져온 객체에 다른 클래스의 공용 메서드를 사용할 수없는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    파이썬에서 클래스를 인스턴스화하는 객체의 유형은 무엇입니까?

  2. 2

    1베이스에서 파생 된 2 개의 클래스에서 2 개의 메서드를 결합하는 방법은 무엇입니까?

  3. 3

    swiftui가 2 개의 서로 다른 환경 객체를 구별 할 수없는 이유는 무엇입니까?

  4. 4

    For 루프가 화면에 둘 이상의 객체를 생성하지 않는 이유는 무엇입니까?

  5. 5

    'findViewById ()'가 반환 한 'View'객체를 LinearLayout 클래스의 addView ()에 매개 변수로 전달할 때 오류가 발생하는 이유는 무엇입니까?

  6. 6

    new Class ()와 new Class {}를 사용하여 클래스에서 객체를 생성하는 것의 차이점은 무엇입니까?

  7. 7

    Java가 수퍼 클래스의 생성자에 액세스 할 수없는 서브 클래스를 허용하지 않는 이유는 무엇입니까?

  8. 8

    파이썬에서 동일한 클래스의 객체를 생성하는 여러 방법을 갖는 방법은 무엇입니까?

  9. 9

    부모 인터페이스를 구현하는 클래스의 생성자로 interface 유형의 객체를 초기화하는 방법은 무엇입니까?

  10. 10

    Java에서 두 개의 중첩 클래스가 예외를 발생시키는 이유는 무엇입니까?

  11. 11

    indexOf가 동일한 클래스 객체의 배열에서 내 객체의 인덱스를 찾을 수있는 이유는 무엇입니까?

  12. 12

    파이썬에서 클래스, 객체를 생성하는 적절한 방법은 무엇입니까

  13. 13

    자식 클래스의 생성자를 사용하여 부모 클래스 개체를 인스턴스화 할 수있는 이유는 무엇입니까?

  14. 14

    두 개 이상의 동일한 객체를 연속 상태에 추가 할 때 항상 동일한 키를 생성하는 이유는 무엇입니까?

  15. 15

    이 개인 클래스에 2 개의 개인 변수를 추가해야하는 이유는 무엇입니까?

  16. 16

    클래스 객체의 클래스 메서드가 메타 클래스를 반환하지 않는 이유는 무엇입니까?

  17. 17

    목록 <슈퍼 클래스> 객체는 서브 클래스 개체에 캐스트 할 수 있습니다 이유는 무엇입니까?

  18. 18

    전역 객체 생성자가 Arduino에서 처음 2 자만 인쇄하는 이유는 무엇입니까?

  19. 19

    PHP 동일한 객체의 인스턴스를 2 개 이상 생성하는 경우 첫 번째 객체에서 정보를 검색 할 수 있습니까?

  20. 20

    클래스의 객체에 정수 값을 할당 할 때 매개 변수화 된 생성자가 호출되는 이유는 무엇입니까?

  21. 21

    C ++에서 정수 상수를 할당하여 Test 클래스의 객체를 초기화 할 수있는 이유는 무엇입니까?

  22. 22

    stream () 메서드가없는 클래스의 객체에서 stream () 메서드를 호출 할 수있는 이유는 무엇입니까?

  23. 23

    참조 유형과 부모 참조 유형에서 클래스 객체를 호딩하는 것의 차이점은 무엇입니까

  24. 24

    최신 C ++에서 다른 클래스 유형의 객체를 하나의 컨테이너에 저장하는 방법은 무엇입니까?

  25. 25

    클래스 객체 segfaults에서 boost :: interprocess를 사용하는 이유는 무엇입니까?

  26. 26

    서브 클래스에서 개인 생성자를 상속하고 호출 할 수있는 이유는 무엇입니까?

  27. 27

    개인 생성자를 정적 중첩 클래스와 결합하는 이유는 무엇입니까?

  28. 28

    객체를 맵에 할당하면 빈 객체가 생성되는 이유는 무엇입니까?

  29. 29

    HashMap에서 가져온 객체에 다른 클래스의 공용 메서드를 사용할 수없는 이유는 무엇입니까?

뜨겁다태그

보관