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가 작동하지 않습니다.
이 디자인이면 스프링 디자이너가 할 수있는 동기는 무엇입니까?
사설 설정자가 사설 설정자를 허용 한 이유는 무엇입니까?
먼저 생성자를 비공개로해서는 안됩니다. 그러나 개인 설정자는 절대 의미가 없습니다. 그들은 단순히 개인적인 방법으로 취급 될 것입니다. – Charles
@ c650 생성자를 비공개로 설정하지 않는 이유는 무엇입니까? – Kayaman
@Kayaman 인스턴스를 만드는 사람은 누구나 생성자에 액세스 할 수 있어야합니다. 일반적인 경우 생성자가 클래스가 아닌 경우 생성자를 비공개해서는 안됩니다. – Charles