Injeção de dependência com fio automático = "construtor" quando vários construtores estão presentes?
Eu tenho uma classe de editor de texto com os construtores abaixo
public class TextEditor {
private SpellChecker spellChecker;
private SpellChecker1 spellChecker1;
private SpellChecker2 spellChecker2;
public TextEditor(SpellChecker spellChecker) {
this.spellChecker = spellChecker;
}
public TextEditor(SpellChecker2 spellChecker2) {
this.spellChecker2 = spellChecker2;
}
public TextEditor(SpellChecker spellChecker, SpellChecker1 spellChecker1,SpellChecker2 spellChecker2) {
this.spellChecker = spellChecker;
this.spellChecker1 = spellChecker1;
this.spellChecker2 = spellChecker2;
}
public TextEditor(SpellChecker spellChecker, SpellChecker1 spellChecker1) {
this.spellChecker = spellChecker;
this.spellChecker1 = spellChecker1;
}
}
Nos feijões da primavera eu tenho
<bean id="textEditor" class="com.TextEditor" autowire="constructor">
</bean>
o que eu observo é construtor com dois argumentos é chamado de forma consistente. Isso é aleatório? A exceção de arremesso de primavera não deve ser feita porque ela não sabe qual construtor precisa ser chamado?