Зачем нам нужен сеттер, когда мы вставляем зависимость в Spring, используя xml? - PullRequest
0 голосов
/ 19 июня 2020

Как мы знаем, в Spring мы можем вводить поля двумя способами: установщиком (xml) и @Autowired. Используя @Autowired, нам не нужно писать сеттер. Мы можем ввести поле просто через отражение. Тогда мой вопрос: зачем нам еще нужен сеттер в XML способе? Почему Spring не вводит поле путем отражения?

1 Ответ

0 голосов
/ 19 июня 2020

Потому что Spring Bean построен на основе спецификации JavaBean, которая определяет свойства как парные public методы получения / установки в соответствии с соглашением об именах. Следовательно, использование <property> в файле XML.

@Autowired разрешено для членов, отличных от public, и, следовательно, поддерживает семантику, отличную от JavaBean. Частное поле без методов получения / установки не является «свойством», это просто переменная экземпляра.

...