Java 构造函数参数在春天?
如何实例化命名构造函数。构造函数是这样的Java 构造函数参数在春天?,java,spring,constructor-injection,Java,Spring,Constructor Injection,如何实例化命名构造函数。构造函数是这样的 public MachineInPitImpl(MachineInPitImpl mip){ //here are the attributes initialised } 我将如何在spring中将此构造函数作为构造函数参数提供 我已经试过了,但没有成功,它仍然初始化默认构造函数。我不想初始化默认的cons。我希望spring初始化上面的构造函数 <bean id="machineInPitImpl" class="minestar.
public MachineInPitImpl(MachineInPitImpl mip){
//here are the attributes initialised
}
我将如何在spring中将此构造函数作为构造函数参数提供
我已经试过了,但没有成功,它仍然初始化默认构造函数。我不想初始化默认的cons。我希望spring初始化上面的构造函数
<bean id="machineInPitImpl" class="minestar.pitlink.domain.pitmodel.MachineInPitImpl" abstract="true">
<constructor-arg ref="machineInPitImpl"/>
</bean>
Spring注入依赖项,这样您就不必传递对象来用作构造函数参数 将您需要的任何引用定义为spring自动注入的成员,并在实例化时调用init方法来执行您想要的任何逻辑
<bean id="machineInPitImpl" class="minestar.pitlink.domain.pitmodel.MachineInPitImpl" abstract="true"
init-method="init"
p:machineInPitImpl-ref="machineInPitImpl"
/>
请注意,我忽略了您试图将一个bean注入到自身中的情况,正如评论员指出的那样,这没有多大意义。您尝试将同一个bean引用注入到xml中
<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." );
}
那么,您想用它自己初始化一个bean吗?那没有任何意义。为什么不使用Java配置,它允许用Java而不是XML定义bean?@JBNizet该类中有两个构造函数。但是我需要在类加载的不是默认构造函数时初始化这个构造函数。我能做到这一点吗?这是13GB代码的一部分。我在这方面做了一些修改。当类加载的不是默认值时,你是什么意思?@Tichodroma完整的句子是,当类加载的不是默认值时,我需要初始化这个构造函数。我需要spring来初始化上面的构造函数,而不是默认的构造函数。不过我不认为这是一种改进。即使使用Spring,使用适当的构造函数也没有错。他的代码不起作用的唯一原因是他正在将bean注入自身。
ApplicationContext context =
new ClassPathXmlApplicationContext("app.xml");
TextEditor te = (TextEditor) context.getBean("textEditor");