Сейчас я изучаю Spring Boot, и я видел, что аннотация @Autowired может быть применена к конструктору, свойствам или методам установки. мы применяем @Autowired к свойству, когда хотим избавиться от метода установки. правильно? Кроме того, я хочу знать о значении @Autowired для сеттеров и конструкторов. Есть ли какое-то преимущество, если бы @Autowired устанавливалось на сеттер вместо свойства? Например:
public class TextEditor {
@Autowired //Applied @Autowired on property
private SpellChecker spellChecker;
public void setSpellChecker( SpellChecker spellChecker ){
this.spellChecker = spellChecker;
}
public SpellChecker getSpellChecker( ) {
return spellChecker;
}
public void spellCheck() {
spellChecker.checkSpelling();
}
}
или мы также можем применить @Autowired для метода Setter следующим образом:
public class TextEditor {
private SpellChecker spellChecker;
@Autowired //Applied @Autowired on setter
public void setSpellChecker( SpellChecker spellChecker ){
this.spellChecker = spellChecker;
}
public SpellChecker getSpellChecker( ) {
return spellChecker;
}
public void spellCheck() {
spellChecker.checkSpelling();
}
}
Если у вас есть логический ответ, пожалуйста, поделитесь. Также заранее спасибо !!!