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;
}
}
在Xml Config下工作
<bean id="bean1" class="com.hike.pojo.PrefixGenerator">
<constructor-arg name="status" value="0"></constructor-arg>
</bean>
XML配置下方不起作用
<bean id="bean2" class="com.hike.pojo.PrefixGenerator">
<property name="customDependency" value="Hmm"></property>
</bean>
我知道,我们可以使用反射更改Private Access Specifier。
我的问题是为什么Spring设计如果Constructor是私有的,Spring DI工作
但如果Setter方法是私有的,那么Spring DI不起作用。
什么是春季设计师&#39;这个设计背后可能的动机?
当他们允许私人建筑师时,为什么他们不允许私人塞特犬?
答案 0 :(得分:0)
Spring不需要了解您的私有数据成员,这就是不支持私有设置者的原因。
现在进入私有构造函数,就像你说的那样遵循单例设计模式。为了支持这个春天,你可以创建单例bean。
Spring完全基于反射。它遵循所有的设计原则,并赋予开发人员权力。