Весной ” Автоматическое подключение по автоопределению ” означает, что выбирает ” автоматическое подключение по конструктору “, если конструктор по умолчанию (аргумент с любым типом данных), в противном случае использует ” автоматическое подключение по типу “.
Смотрите пример пружины “автоматическое подключение с помощью автоматического обнаружения”. Автоматическое подключение боба “кунг-фу” к “панде” с помощью конструктора или типа (на основе реализации медведя панды).
1. Автоматическое определение – с помощью конструктора
Если указан конструктор по умолчанию, автоматическое определение будет выбирать провод по конструктору.
package com.mkyong.common; public class Panda { private KungFu kungfu; public Panda(KungFu kungfu) { System.out.println("autowiring by constructor"); this.kungfu = kungfu; } public KungFu getKungfu() { return kungfu; } public void setKungfu(KungFu kungfu) { System.out.println("autowiring by type"); this.kungfu = kungfu; } //... }
Выход
autowiring by constructor Person [kungfu=Language [name=Shao lin]]
2. Автоматическое определение – по типу
Если конструктор по умолчанию не найден, автоматическое определение выберет провод по типу.
package com.mkyong.common; public class Panda { private KungFu kungfu; public KungFu getKungfu() { return kungfu; } public void setKungfu(KungFu kungfu) { System.out.println("autowiring by type"); this.kungfu = kungfu; } //... }
Выход
autowiring by type Person [kungfu=Language [name=Shao lin]]
Скачать Исходный Код
Рекомендации
Оригинал: “https://mkyong.com/spring/spring-autowiring-by-autodetect/”