集合の注入の4つの方式


※違いはスプリングファイルのみです.
一.集合の注入の四つの方式―List注入方式
1.クラスの作成:
package com.dao;


import java.util.List;


public class DepDao {

    private List ls;

    public List getLs() {

        return ls;

    }

    public void setLs(List ls) {

        this.ls = ls;

    }

}

3.springにクラスを注入する.xmlファイル:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">


<beans>

    <!-- id          ,class       -->

    <bean id="DepDao" class="com.dao.DepDao">

        <property name="ls">

            <list>

                <value>zhangsan</value>

                <value>lisi</value>

                <value>wangwu</value>

            </list>

        </property>

    </bean>

</beans>

3.テスト:
package com.test;


import java.util.List;


import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext;


import com.dao.DepDao;


public class Test {

   

    public static void main(String[] args) {

        //  spring.xml    

        String path = Test.class.getClass().getResource("/").getPath();

        System.out.println("Spring xml    --->"+path);

        //         

        ApplicationContext actxt = new FileSystemXmlApplicationContext(path+"spring.xml");

        //  spring.xml    DepDao  

        DepDao dao = (DepDao) actxt.getBean("DepDao");

        //  get  

        List ls = dao.getLs();

        for (int i = 0; i < ls.size(); i++) {

            System.out.println("    :"+ls.get(i));

        }

    }

}

結果を表示:
Springのxmlファイルパス----->/E:/work/Test/bin/
結果を表示:zhangsan
結果の表示:lisi
結果を表示:wangwu
二.集合の注入の四つの方式―Set注入方式
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">


<beans>

    <!-- id          ,class       -->

    <bean id="DepDao" class="com.dao.DepDao">

        <property name="ls">

            <set>

                <value>zhangsan</value>

                <value>lisi</value>

                <value>wangwu</value>

            </set>

        </property>

    </bean>

</beans>

結果を表示:
Springのxmlファイルパス----->/E:/work/Test/bin/
結果を表示:zhangsan
結果の表示:lisi
結果を表示:wangwu
三.集合の注入の4つの方式—Properties注入方式
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">


<beans>

    <!-- id          ,class       -->

    <bean id="DepDao" class="com.dao.DepDao">

        <property name="ls">

            <props>

                <prop key="1">zhangsan</prop>

                <prop key="2">lisi</prop>

                <prop key="3">wangwu</prop>

            </props>

        </property>

    </bean>

</beans>

結果を表示:
Springのxmlファイルパス----->/E:/work/Test/bin/
結果を表示:{3=wangwu,2=lisi,1=zhangsan}
四.集合の注入の四つの方式—Map注入方式
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">


<beans>

    <!-- id          ,class       -->

    <bean id="DepDao" class="com.dao.DepDao">

        <property name="ls">

            <map>

                <entry key="1">

                    <value>zhangsan</value>

                </entry>

                <entry key="2">

                    <value>lisi</value>

                </entry>

                <entry key="3">

                    <value>wangwu</value>

                </entry>

            </map>

        </property>

    </bean>

</beans>

結果を表示:
Springのxmlファイルパス----->/E:/work/Test/bin/
結果を表示:{1=zhangsan,2=lisi,3=wangwu}
自動アセンブリの5つのモード
1.Bynameモード
beanのプロパティ名による自動アセンブリ
2.Bytypeモード
プロファイルにちょうどプロパティタイプと同じbeanがある場合は、このプロパティを自動的にアセンブリします.
3.Constructorモード
コンストラクション関数のパラメータに基づいて自動アセンブリを行います.
4.       Autodetect
クラスの内部をbeanでチェックしてConstructorまたはbytypeを選択し、コンストラクタがなければbytype(タイプ別)でアセンブリし、コンストラクタがあれば先にコンストラクタアセンブリを使用します.