Что такое benifit использования @Autowired на конструкторе, как показано ниже,Использование @Autowired на конструктору
@Autowired
public MyClass(A a){
}
Что такое benifit использования @Autowired на конструкторе, как показано ниже,Использование @Autowired на конструктору
@Autowired
public MyClass(A a){
}
Вы можете иметь final
поля в классе, и вообще даже неизменный класс - меньше движущихся частей, чистый код , проще понять.
И класс легче тестировать, вы всегда знаете, какие свойства установить в нем, чтобы иметь рабочий класс (потому что конструктор заставляет вас установить их) - конечно, все еще могут пройти нули в параметрах.
Этот путь bean A
будет введен в конструктор. Он более чистый, потому что вы как бы объявляете зависимости компонента, потому что он не может быть создан без доставки A
. Это упрощает тестирование.
Значит, класс A должен быть объявлен как bean-компонент, если использовать аннотацию Bean или Component? Если не пружина не может инициировать экземпляр MyClass с помощью autwired? – Harshana
Да, это так. –
Если вы хотите, чтобы понять больше на @Autowired
Весна объяснил на это документация:
Лил резюме может быть, когда весной создать боб autowired, когда он нашел аннотацию @Autowired
Его ничего, кроме constructor based dependency injection
.
Эта ссылка будет подробнее Constructor based dependency injection
В отличие от *, что *? Какой здесь контекст? – kryger