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