Конструктор аргов весной?

Как я буду создавать экземпляр именованного конструктора. Конструктор такой

 public MachineInPitImpl(MachineInPitImpl mip){
 //here are the attributes initialised
 }  

Как я дам этот конструктор как конструктор-args весной.

Я пробовал это, но не работает, он все еще инициализирует конструктор по умолчанию. Я не хочу инициализировать минусы по умолчанию. Я хочу, чтобы весна инициализировала вышеупомянутый конструктор

<bean id="machineInPitImpl" class="minestar.pitlink.domain.pitmodel.MachineInPitImpl" abstract="true">
    <constructor-arg ref="machineInPitImpl"/>

</bean>

2 ответа

Вы пытались внедрить ту же ссылку на компонент в 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." );
       }

Имеет смысл. Когда вы пытаетесь это сделать,

ApplicationContext context = 
             new ClassPathXmlApplicationContext("app.xml");

      TextEditor te = (TextEditor) context.getBean("textEditor");

Spring внедряет зависимости, так что вам не нужно передавать объекты просто для использования в качестве аргументов конструктора.

определите все ссылки, которые вам нужны, как члены, которые будут автоматически вставлены пружиной, и вызовите метод init для выполнения любой логики, которую вы хотите при создании экземпляра

<bean id="machineInPitImpl" class="minestar.pitlink.domain.pitmodel.MachineInPitImpl"  abstract="true"  
  init-method="init"
  p:machineInPitImpl-ref="machineInPitImpl"  
/>

обратите внимание, что я игнорирую, что вы пытаетесь внедрить в себя боб, который не имеет особого смысла, на что указывают комментаторы.

Другие вопросы по тегам