Рубрики
Без рубрики

Пружинный автопровод по типу

– Пружинный автопровод по типу

Автор оригинала: 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/”