0
XML의 구성 아래
public class PrefixGenerator implements Generator { 

    private String customDependency; 

    private PrefixGenerator() { 
     System.out.println("PrefixGenerator Instantiated"); 
    } 

    private PrefixGenerator(int status) { 
     System.out.println("PrefixGenerator with int arg Instantiated"); 
    } 

    private void setCustomDependency(String customDependency) { 
     this.customDependency = customDependency; 
    } 
} 

, 우리는 개인 변경할 수 있습니다 내가 아는

<bean id="bean2" class="com.hike.pojo.PrefixGenerator"> 
<property name="customDependency" value="Hmm"></property> 
</bean> 

를 작동하지 않는 XML의 설정 아래

<bean id="bean1" class="com.hike.pojo.PrefixGenerator"> 
<constructor-arg name="status" value="0"></constructor-arg> 
</bean> 

를 작동 리플렉션을 사용하여 액세스 지정자.
제 질문은 왜 스프링인가요? Constructor가 private 일 경우 Spring DI는 작동합니다. Setter 메서드가 private이면 Spring DI가 작동하지 않습니다.
이 디자인이면 스프링 디자이너가 할 수있는 동기는 무엇입니까?
사설 설정자가 사설 설정자를 허용 한 이유는 무엇입니까?

+0

먼저 생성자를 비공개로해서는 안됩니다. 그러나 개인 설정자는 절대 의미가 없습니다. 그들은 단순히 개인적인 방법으로 취급 될 것입니다. – Charles

+0

@ c650 생성자를 비공개로 설정하지 않는 이유는 무엇입니까? – Kayaman

+0

@Kayaman 인스턴스를 만드는 사람은 누구나 생성자에 액세스 할 수 있어야합니다. 일반적인 경우 생성자가 클래스가 아닌 경우 생성자를 비공개해서는 안됩니다. – Charles

답변

0

스프링은 개인 데이터 멤버에 대해 알 필요가 없으므로 개인 설정자가 지원되지 않습니다.

개인용 디자인 패턴을 따르는 것으로 개인용 생성자가 시작됩니다. 이 봄을 지원하려면 싱글 톤 빈을 만들 수 있습니다.

스프링은 리플렉션을 기반으로합니다. 모든 디자인 원칙을 따르고 개발자에게 힘을줍니다.