Автор оригинала: mkyong.
Весной ” Автоматическое подключение по типу ” означает, что тип данных компонента совместим с типом данных другого свойства компонента, автоматически подключайте его.
Например, компонент “человек” предоставляет свойство с типом данных класса “способность”, Spring найдет компонент с тем же типом данных класса “способность” и автоматически подключит его. И если совпадений не найдено, просто ничего не делайте.
Вы можете включить эту функцию с помощью autowire="byType"
, как показано ниже:
Смотрите полный пример автоматической проводки Spring по типу.
1. Фасоль
Два боба, личность и способности.
package com.mkyong.common; public class Person { private Ability ability; //... }
package com.mkyong.common; public class Ability { private String skill; //... }
2. Пружинная проводка
Обычно вы подключаете компонент явно:
Выход
Person [ability=Ability [skill=Invisible]]
Если автоматическое подключение по типу включено , вы можете оставить свойство способности не заданным. Spring найдет тот же тип данных и подключит его автоматически.
Выход
Person [ability=Ability [skill=Invisible]]
Подождите, а что, если у вас есть два компонента с одинаковым типом данных класса “способность”?
Выход
Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException: ... No unique bean of type [com.mkyong.common.Ability] is defined: expected single matching bean but found 2: [steal, invisible]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.mkyong.common.Ability] is defined: expected single matching bean but found 2: [steal, invisible]
В этом случае вы получите сообщение об ошибке Исключение "Неудовлетворенная зависимость"
.
Скачать Исходный Код
Оригинал: “https://mkyong.com/spring/spring-autowiring-by-type/”