AutoDetectによる春のオートワイヤリング

AutoDetectによる春の自動配線

Springでは、「Autowiring by AutoDetect」は、デフォルトのコンストラクター(任意のデータ型の引数)の場合、「http://www.example.com/spring/spring-autowiring-by-constructor/ [コンストラクターによる自動配線]」を選択することを意味します、それ以外の場合は「http://www.example.com/spring/spring-autowiring-by-type/[autowirebytype]」を使用します。

Springの「自動検出による自動配線」の例を参照してください。 コンストラクターまたはタイプを介して、「kungfu」Beanを「panda」に自動配線します(panda beanの実装に基づきます)。

    

    
        
    

1. AutoDetect –コンストラクターによる

デフォルトのコンストラクターが指定されている場合、自動検出はコンストラクターによるワイヤーを選択します。

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]]

ソースコードをダウンロード

ダウンロード–Spring-AutoWiring-by-Auto-Detect-Example.zip(6 KB)