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

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

В Spring «Autowiring by AutoDetect» означает выбор «http://www.example.com/spring/spring-autowiring-by-constructor/[autowire by constructor]», если конструктор по умолчанию (аргумент с любым типом данных) , в противном случае используется «http://www.example.com/spring/spring-autowiring-by-type/[autowire by type]».

Смотрите пример Spring «автоматическое подключение по автоопределению». Автоматическое подключение бобов «кунгфу» в «панду» с помощью конструктора или типа (на основе реализации боба панды).

    

    
        
    

1. Автоопределение - по конструктору

Если указан конструктор по умолчанию, автоопределение выберет проводник по конструктору.

package com.example.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.example.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]]

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