如何实例化命名构造函数。构造函数就像这样
public MachineInPitImpl(MachineInPitImpl mip){
//here are the attributes initialised
}
我如何在spring中将此构造函数作为constructor-args。
我试过这个,但没有工作,它仍然初始化默认构造函数。我不想初始化默认缺点。我希望spring初始化上面的构造函数
<bean id="machineInPitImpl" class="minestar.pitlink.domain.pitmodel.MachineInPitImpl" abstract="true">
<constructor-arg ref="machineInPitImpl"/>
</bean>
答案 0 :(得分:0)
Spring注入依赖项,因此您不必仅传递对象以用作构造函数参数。
定义您需要的任何引用作为将由spring自动注入的成员,并调用init方法以在实例化时执行您想要的任何逻辑。
<bean id="machineInPitImpl" class="minestar.pitlink.domain.pitmodel.MachineInPitImpl" abstract="true"
init-method="init"
p:machineInPitImpl-ref="machineInPitImpl"
/>
请注意,我忽略了你试图将豆子注入其自身,这一点并不像评论者所指出的那样有意义。
答案 1 :(得分:0)
您已尝试在xml中注入相同的bean引用,
<bean id="textEditor" class="com.tutorialspoint.TextEditor">
<constructor-arg ref="spellChecker"/>
</bean>
<bean id="spellChecker" class="com.tutorialspoint.SpellChecker">
</bean>
public TextEditor(SpellChecker spellChecker) {
System.out.println("Inside TextEditor constructor." );
this.spellChecker = spellChecker;
}
public SpellChecker(){
System.out.println("Inside SpellChecker constructor." );
}
有道理。当你尝试这样做时,
ApplicationContext context =
new ClassPathXmlApplicationContext("app.xml");
TextEditor te = (TextEditor) context.getBean("textEditor");