Springでは、 ”

by Autowiring by Type

“は、Beanのデータ型が他のBeanプロパティのデータ型と互換性がある場合、それを自動配線することを意味します。

例えば、 “person” Beanはデータ型が “ability”クラスのプロパティを公開し、Springはクラス “ability”と同じデータ型のBeanを見つけて自動的に配線します。一致が見つからない場合は、何もしないでください。

この機能を有効にするには、以下のように `autowire =” byType “`を実行します:

    <!-- person has a property type of class "ability" -->
    <bean id="person" class="com.mkyong.common.Person" autowire="byType"/>

    <bean id="invisible" class="com.mkyong.common.Ability" >
        <property name="skill" value="Invisible"/>
    </bean>

タイプ別のスプリング自動配線の完全な例を参照してください。

1.ビーンズ

2つの豆、人と能力。

package com.mkyong.common;

public class Person
{
    private Ability ability;
   //...
}

package com.mkyong.common;

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

2.スプリング配線

通常、Beanを明示的に配線します。

    <bean id="person" class="com.mkyong.common.Person">
        <property name="ability" ref="invisible"/>
    </bean>

    <bean id="invisible" class="com.mkyong.common.Ability" >
        <property name="skill" value="Invisible"/>
    </bean>


出力

Person[ability=Ability[skill=Invisible]]....

**  autowireをタイプ** で有効にすると、能力プロパティを未設定のままにすることができます。 Springは同じデータ型を見つけ、自動的に配線します。

<bean id="person" class="com.mkyong.common.Person" autowire="byType"/>

<bean id="invisible" class="com.mkyong.common.Ability" >
    <property name="skill" value="Invisible"/>
</bean>

__出力__

Person[ability=Ability[skill=Invisible]]…​.

あなたがクラス “能力”の同じデータ型を持つ2つの豆を持っていればどうでしょうか?

    <bean id="person" class="com.mkyong.common.Person" autowire="byType"/>

    <bean id="steal" class="com.mkyong.common.Ability" >
        <property name="skill" value="Steal"/>
    </bean>

    <bean id="invisible" class="com.mkyong.common.Ability" >
        <property name="skill" value="Invisible"/>
    </bean>


出力

Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException:
...

タイプ[com.mkyong.common.Ability]の一意のBeanは定義されていません。
予想される単一の一致するBeanが見つかりましたが、2:[steal、invisible]。入れ子にされた例外は
org.springframework.beans.factory.NoSuchBeanDefinitionException:
タイプ[com.mkyong.common.Ability]の一意のBeanは定義されていません。
予想される単一の一致するBeanが見つかりましたが、2:[steal、invisible]....

この場合、 `UnsatisfiedDependencyException`エラーが発生します
メッセージ。

** 注**  +
タイプモードによるオートワイヤリングでは、
Beanのデータ型が宣言されます。

===ソースコードをダウンロードする

それをダウンロードする -
link://wp-content/uploads/2011/06/Spring-AutoWiring-by-Type-Example.zip[Spring-AutoWiring-by-Type-Example.zip](6 KB)

link://tag/spring/[spring]link://タグ/wiring/[wiring]