0
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設定の下なぜプライベートコンストラクタの作品が、XMLコンフィグ以下はプライベートセッターはSPRING DI IOCにない
<bean id="bean1" class="com.hike.pojo.PrefixGenerator">
<constructor-arg name="status" value="0"></constructor-arg>
</bean>
は、私が知っている
<bean id="bean2" class="com.hike.pojo.PrefixGenerator">
<property name="customDependency" value="Hmm"></property>
</bean>
を動作しません、我々はプライベートに変更することができます動作しますリフレクションを使用したアクセス指定子。
私の質問はSpringがなぜ設計されているのかコンストラクターがプライベートで、Spring DIが動作する場合 Setterメソッドがprivateの場合、Spring DIは機能しません。
このデザインの背後にある春デザイナーの動機は何でしょうか?
Private Constructorを許可したときにプライベートSetterを許可できないのはなぜですか?
コンストラクタは、最初はプライベートであってはいけません。しかしながら、プライベートセッターは絶対に意味をなさない。彼らは単に私的な方法として扱われるだろう。 – Charles
@ c650コンストラクタをプライベートにしないでください。 – Kayaman
@ Kayamanインスタンスを作成している人は誰でもコンストラクタにアクセスできるはずです。一般的なケースでは、あなたのクラスがそうでない限り、あなたのコンストラクタはプライベートであってはいけません。 – Charles