Пружинная электропроводка по типу

Пружинная электропроводка по типу

В Spring «Autowiring by Type» означает, что если тип данных компонента совместим с типом данных другого свойства компонента, автоматически подключайте его.

Например, компонент «person» предоставляет свойство с типом данных класса «Способность», Spring найдет компонент с тем же типом данных класса «способность» и автоматически подключит его. И если соответствия не найдено, просто ничего не делайте.

Вы можете включить эту функцию черезautowire="byType", как показано ниже:

    
    

    
        
    

Смотрите полный пример электропроводки Spring по типу.

1. Фасоль

Две бобы, человек и способности.

package com.example.common;

public class Person
{
    private Ability ability;
    //...
}
package com.example.common;

public class Ability
{
    private String skill;
    //...
}

2. Пружинная проводка

Обычно вы связываете бин явно:

    
        
    

    
        
    

Выход

Person [ability=Ability [skill=Invisible]]

Используяautowire by type enabled, вы можете не задавать свойство способности. Spring найдет тот же тип данных и подключит его автоматически.

    

    
        
    

Выход

Person [ability=Ability [skill=Invisible]]

Подождите, что если у вас есть два компонента с одним и тем же типом данных класса «способность»?

    

    
        
    

    
        
    

Выход

Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException:
...
No unique bean of type [com.example.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.example.common.Ability] is defined:
expected single matching bean but found 2: [steal, invisible]

В этом случае вы получите сообщение об ошибкеUnsatisfiedDependencyException.

Note
В режиме автоматического подключения по типу вам просто нужно убедиться, что объявлен только один уникальный тип данных bean-компонента.

Скачать исходный код

Скачать -Spring-AutoWiring-by-Type-Example.zip (6 КБ)