[Автоматическая сборка Spring]

Базовый принцип реализации автоматической сборки Spring

Базовый принцип реализации автоматической сборки Spring основан на механизме отражения и контейнере IoC (инверсия управления).

Сначала Spring сканирует все bean-компоненты в контексте приложения, а затем устанавливает зависимости между bean-компонентами на основе аннотаций, файлов конфигурации или других метаданных.

Затем, когда контейнер IoC запускается, Spring будет использовать механизм отражения для создания этих bean-компонентов и автоматически внедрять их туда, где они необходимы. В частности, Spring будет использовать механизм отражения для вызова методов конструктора и установки компонента для реализации создания экземпляра компонента и назначения атрибутов.

@Autowired автоматическое подключение аннотаций

Используйте аннотацию @Autowired для автоматической сборки указанного компонента. При запуске Spring IoC контейнер автоматически загружает постпроцессор. Когда контейнер сканирует @Autowied, он автоматически находит необходимый компонент в контейнере IoC и внедряет объект. Атрибуты , при использовании @Autowired сначала запросите bean-компонент соответствующего типа в контейнере. Если результат запроса равен единице, соберите bean-компонент с данными, указанными @Autowired. Если результат запроса больше одного, то @Autowired будет собрать компонент по имени.Для поиска, если результат вышеуказанного поиска пуст, будет выдано исключение.Решение можно использовать require=false. Если вы используете @Resource, он будет ассемблироваться и внедряться в соответствии с именем по умолчанию. Только если bean-компонент, соответствующий имени, не может быть найден, он будет ассемблироваться и внедряться в соответствии с типом.

В Spring есть 5 режимов автоподключения.

  • Настройка Spring по умолчанию, при которой автоматическая сборка отключена.
  • byName: автоматическая сборка на основе имени компонента.
  • byType: автоматическая сборка в зависимости от типа компонента.
  • конструктор: автоматическая сборка в соответствии с типом параметра конструктора.
  • autodetect: сначала он попытается найти подходящий конструктор с параметрами. Если он будет найден, он будет автоматически собран с конструктором. Если соответствующий конструктор не найден внутри компонента Bean или конструктор является конструктором без параметров, контейнер автоматически выберет режим по типу.

おすすめ

転載: blog.csdn.net/java_wxid/article/details/132890285