<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"

    default-init-method="xxx"

    default-destroy-method="yyy"

    >

<!-- 在這裡設定出使話跟毀面,下面所有註冊的Bean中有xxxyyy方法的Bean元件都會實施他們的xxxyyy方法 -->

 

    <bean id="logProvider" class="util.LogProvider" ></bean>

    <!-- ↑這就是一個Bean物件,被呼叫時就會new出一個util.LogProvider的物件 -->

 

    <bean id="demoBean0" class="model.DemoBean" scope="prototype" init-method="xxx">

       <constructor-arg value="這是一個demovalue1,用建構子一個參數"></constructor-arg>

       <!-- 簡單的值 -->

    </bean>

    <!-- Spring會依據設定黨所提供的參數型別及數量來搜尋最是當的建構子,所以給value即可 -->

 

    <bean id="year1" class="java.util.Date"></bean>

    <!-- new一個日期,給予id year1 -->

    <bean id="demoBean1" class="model.DemoBean" init-method="xxx" destroy-method="yyy">

       <constructor-arg value="這是一個demovalue2,用建構子,兩個參數,用ref連結日期"></constructor-arg>

       <constructor-arg ref="year1"></constructor-arg>

       <!--ref 接受Spring管理的Bean元件 -->

    </bean>

 

    <bean id="demoBean4" class="model.DemoBean" init-method="xxx">

       <constructor-arg value="這是一個demovalue2,用建構子,兩個參數,用bean直接輸入值"></constructor-arg>

       <constructor-arg>

           <bean class="java.util.Date"></bean>

           <!--直接在裡面new一個日期 -->

       </constructor-arg>

    </bean>

 

    <bean id="demoBean5" class="model.DemoBean">

       <constructor-arg>

           <bean class="java.util.Date"></bean>

           <!-- 不受Spring管理的Bean元件 -->

       </constructor-arg>

       <constructor-arg

           value="這是一個demovalue2,用建構子,兩個參數,設定檔中參數的順序跟建構子裡不一樣,但Spring不會搞錯"></constructor-arg>

    </bean>

 

    <bean id="demoBean6" class="model.DemoBean">

       <constructor-arg name="year">

           <bean class="java.util.Date"></bean>

       </constructor-arg>

       <constructor-arg name="name"

           value="這是一個demovalue2,用建構子,兩個參數,用名字,沒設定type"></constructor-arg>

    </bean>

 

    <bean id="demoBean7" class="model.DemoBean">

       <constructor-arg name="year" type="java.util.Date">

           <bean class="java.util.Date"></bean>

       </constructor-arg>

       <constructor-arg name="name" type="java.lang.String"

           value="這是一個demovalue2,用建構子,兩個參數,用名字,有設定type"></constructor-arg>

    </bean>

 

    <bean id="demoBean8" class="model.DemoBean">

       <constructor-arg type="java.util.Date">

           <bean class="java.util.Date"></bean>

       </constructor-arg>

       <constructor-arg type="java.lang.String"

           value="這是一個demovalue2,用建構子,兩個參數,沒用名字,有設定type"></constructor-arg>

    </bean>

    <bean id="demoBean10" class="model.DemoBean">

       <!-- 建構子有兩個輸入參數,listmap -->

       <!-- java Collection -->

       <constructor-arg type="java.util.List" name="list1">

           <list>

              <value>d1</value>

              <value>d2</value>

              <value>d3</value>

              <value>d4</value>

           </list>

           <!-- 設定list的值 -->

       </constructor-arg>

       <constructor-arg type="java.util.Map" name="map">

           <map>

              <entry key="1" value="a"></entry>

              <entry key="2" value="b"></entry>

              <entry key="3" value="c"></entry>

           </map>

           <!-- 設定list的值 -->

       </constructor-arg>

    </bean>

 

    <bean id="demoBean2" class="model.DemoBean" >

       <property name="name" value="這是一個setter方法"></property>

    </bean>

 

    <bean id="demoBean3" class="model.DemoBean">

       <property name="name">

           <null></null>

           <!-- 設定為null -->

       </property>

    </bean>

   

    <bean id="demoBean11" class="model.DemoBean" >

       <constructor-arg type="java.util.List" name="list2">

           <list>

              <ref bean="demoBean2"></ref>

              <ref bean="demoBean3"></ref>

           </list>

       </constructor-arg>

    </bean>

 

</beans>





package org.iiiedu.samuel.ProjSpringDemo;

 

import model.DemoBean;

 

import org.springframework.context.ApplicationContext;

import org.springframework.context.ConfigurableApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

public class TestDemoBean {

 

    public static void main(String[] args) {

       ApplicationContext context = new ClassPathXmlApplicationContext("beans.config.xml");

       System.out.println("------------------------------------------");

       DemoBean demoBean0 = (DemoBean) context.getBean("demoBean0");

       System.out.println("demoBean0="+demoBean0.getName());

      

       DemoBean demoBean1 = (DemoBean) context.getBean("demoBean1");

        System.out.println("demoBean1="+demoBean1.getName()+","+demoBean1.getYear());

      

       DemoBean demoBean4 = (DemoBean) context.getBean("demoBean4");

        System.out.println("demoBean4="+demoBean4.getName()+","+demoBean4.getYear());

      

       DemoBean demoBean5 = (DemoBean) context.getBean("demoBean5");

        System.out.println("demoBean5="+demoBean5.getName()+","+demoBean5.getYear());

      

       DemoBean demoBean6 = (DemoBean) context.getBean("demoBean6");

        System.out.println("demoBean6="+demoBean6.getName()+","+demoBean6.getYear());

      

       DemoBean demoBean7 = (DemoBean) context.getBean("demoBean7");

        System.out.println("demoBean7="+demoBean7.getName()+","+demoBean7.getYear());

      

       DemoBean demoBean8 = (DemoBean) context.getBean("demoBean8");

        System.out.println("demoBean8="+demoBean8.getName()+","+demoBean8.getYear());

      

       DemoBean demoBean10 = (DemoBean) context.getBean("demoBean10");

       System.out.println("demoBean10="+demoBean10.getList1()+demoBean10.getMap());

      

 

      

       DemoBean demoBean2 = (DemoBean) context.getBean("demoBean2");

       //context.getBean()回傳萬物件之父Object,所以要強制轉型

       System.out.println("demoBean2="+demoBean2.getName());

      

       DemoBean demoBean3 = (DemoBean) context.getBean("demoBean3");

       //context.getBean()回傳萬物件之父Object,所以要強制轉型

       System.out.println("demoBean3="+demoBean3.getName());

      

       DemoBean demoBean11 = (DemoBean) context.getBean("demoBean11");

       System.out.println("demoBean11="+demoBean11.getList2());

      

       DemoBean demoBean12 = (DemoBean) context.getBean("demoBean11");

       System.out.println("demoBean12="+demoBean12.getList2());

      

       System.out.println("-----------------------------------");

       ((ConfigurableApplicationContext) context).close();

 

       System.out.println("-----------------------------------");

    }

}





六月 07, 2016 7:10:58 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh

資訊: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@117ae12: startup date [Tue Jun 07 19:10:58 CST 2016]; root of context hierarchy

六月 07, 2016 7:10:58 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions

資訊: Loading XML bean definitions from class path resource [beans.config.xml]

我是一個用來做為初始化示範的方法

我是一個用來做為初始化示範的方法

我是一個用來做為初始化示範的方法

我是一個用來做為初始化示範的方法

我是一個用來做為初始化示範的方法

我是一個用來做為初始化示範的方法

我是一個用來做為初始化示範的方法

我是一個用來做為初始化示範的方法

我是一個用來做為初始化示範的方法

我是一個用來做為初始化示範的方法

------------------------------------------

我是一個用來做為初始化示範的方法

demoBean0=這是一個demovalue1,用建構子一個參數

demoBean1=這是一個demovalue2,用建構子,兩個參數,用ref連結日期,Tue Jun 07 19:10:59 CST 2016

demoBean4=這是一個demovalue2,用建構子,兩個參數,用bean直接輸入值,Tue Jun 07 19:10:59 CST 2016

demoBean5=這是一個demovalue2,用建構子,兩個參數,設定檔中參數的順序跟建構子裡不一樣,但Spring不會搞錯,Tue Jun 07 19:10:59 CST 2016

demoBean6=這是一個demovalue2,用建構子,兩個參數,用名字,沒設定type,Tue Jun 07 19:10:59 CST 2016

demoBean7=這是一個demovalue2,用建構子,兩個參數,用名字,有設定type,Tue Jun 07 19:10:59 CST 2016

demoBean8=這是一個demovalue2,用建構子,兩個參數,沒用名字,有設定type,Tue Jun 07 19:10:59 CST 2016

demoBean10=[d1, d2, d3, d4]{1=a, 2=b, 3=c}

demoBean2=這是一個setter方法

demoBean3=null

demoBean11=[model.DemoBean@18486a3, model.DemoBean@11aa95a]

demoBean12=[model.DemoBean@18486a3, model.DemoBean@11aa95a]

-----------------------------------

六月 07, 2016 7:10:59 下午 org.springframework.context.support.ClassPathXmlApplicationContext doClose

資訊: Closing org.springframework.context.support.ClassPathXmlApplicationContext@117ae12: startup date [Tue Jun 07 19:10:58 CST 2016]; root of context hierarchy

我是一個用來做為毀滅示範的方法

我是一個用來做為毀滅示範的方法

我是一個用來做為毀滅示範的方法

我是一個用來做為毀滅示範的方法

我是一個用來做為毀滅示範的方法

我是一個用來做為毀滅示範的方法

我是一個用來做為毀滅示範的方法

我是一個用來做為毀滅示範的方法

我是一個用來做為毀滅示範的方法

我是一個用來做為毀滅示範的方法

-----------------------------------

 

創作者介紹
創作者 乙方 的頭像
乙方

學習筆記專區

乙方 發表在 痞客邦 留言(0) 人氣()