<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 24  文章 - 6  trackbacks - 0
    <2005年3月>
    272812345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    隨筆分類(23)

    積分與排名

    • 積分 - 13833
    • 排名 - 2083

    最新評(píng)論

    二、spring管理對(duì)象的簡(jiǎn)單例子

     

    Bromon原創(chuàng) 請(qǐng)尊重版權(quán)

      任何需要交給spring管理的對(duì)象,都必須在配置文件中注冊(cè),這個(gè)過程被稱為wiring,下面做一個(gè)最簡(jiǎn)單的Hello world演示,我們將要注冊(cè)的類如下:

    /*
     * 創(chuàng)建日期 2005-3-22
     
    */

    package org.bromon.spring.test;

    /**

     * @author Bromon

     
    */


    public class HelloTalker 

    {
        
    public String greeting()

        
    {

            
    return "hello world";

        }

    }

      然后我們來編寫一個(gè)spring配置文件,文件名任意,在我這里它是springConfig.xml,需要注意的是這個(gè)文件應(yīng)該存放在classpath所包含的路徑中:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "
    http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
     <bean id=”helloTalker” class=” org.bromon.spring.test.HelloTalker”>
     </bean>
    </beans>

      通過使用bean標(biāo)簽,注冊(cè)了一個(gè)HelloTalker對(duì)象,它的名字叫做helloTalker。然后我們編寫一個(gè)測(cè)試類,它的工作是利用spring框架提供的接口,加載配置文件,通過指定對(duì)象的id,獲得一個(gè)對(duì)象。它的代碼如下:

    /*
     * 創(chuàng)建日期 2005-3-17
     
    */


    package org.bromon.spring.test.junit;

    import java.io.FileInputStream;

    import org.springframework.beans.factory.xml.XmlBeanFactory;

    import org.springframework.context.ApplicationContext;

    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.bromon.spring.test;
    /**
     * @author Bromon
     
    */


    public class TestStudentManager extends TestCase {
        
    public void testHelloTalker() 
        
    {
            
    try
            
    {
                ApplicationContext context 
    =new ClassPathXmlApplicationContext("springConfig.xml");

    HelloTalker ht
    =(HelloTalker)context.getBean(“helloTalker”);

    System.
    out.println(ht.greeting());

            }
    catch(Exception e)

            
    {

                e.printStackTrace();

            }


        }

    }

      這個(gè)程序就完成了,因?yàn)橹挥幸粋€(gè)對(duì)象HelloTalker被注冊(cè)到了spring中,所以不存在對(duì)象間的依賴,當(dāng)然也就不涉及依賴注入。下面演示一個(gè)簡(jiǎn)單的依賴注入:

      第一步是修改HelloTalker,增加一個(gè)String name屬性:

    public String name;

      為該屬性編寫set方法,該方法必須嚴(yán)格遵守javabean的命名規(guī)則:

    public void setName(String name)

    {

           this.name=name;

    }

      修改greeting方法:

    public String greeting()

    {

    return "hello "+name;

    }


      
    如你所見,name屬性沒有初試化,因?yàn)樗闹祵⒃谶\(yùn)行過程中被spring動(dòng)態(tài)注射入。

      第二步,修改springConfig.xml中唯一的這個(gè)bean配置:

    <bean id=helloTalker class= org.bromon.spring.test.HelloTalker>

        <property name=name>

            <value>bromon</value>

        </property>

    </bean>

     

      修改完成。我們將一個(gè)名字”bromon”寫死在springConfig.xml中,它會(huì)被動(dòng)態(tài)的注入到HelloTalkername屬性中,greeting方法將會(huì)把它打印出來。重新運(yùn)行剛才的junit類,可以看到結(jié)果。

      我們只演示了如何注入一個(gè)最簡(jiǎn)單的String,實(shí)際上我們可以注入任何值類型,也可以注入任何類的實(shí)例,也可以注入ListMapProperties。配置文件管理了所有的對(duì)象和對(duì)象間的關(guān)系,而對(duì)象則只負(fù)責(zé)執(zhí)行自己的功能,他們的職責(zé)越少,藕合度越低,系統(tǒng)就越容易測(cè)試,管理維護(hù)也更容易。

      <bean>標(biāo)簽還有很多屬性,用于指定對(duì)象如何被實(shí)例化,它也有很多子標(biāo)簽用于配置對(duì)象的屬性,請(qǐng)大家參考相關(guān)的DTD和文檔,能夠很快的掌握。本系列文章不是spring手冊(cè),spring的基礎(chǔ)知識(shí)請(qǐng)參考spring in action,足夠詳細(xì)準(zhǔn)確。后面的章節(jié)更多的討論系統(tǒng)設(shè)計(jì)、開發(fā)的一些細(xì)節(jié)和高級(jí)特性。

    下一篇:在spring中進(jìn)行hibernate開發(fā)

    posted on 2005-03-28 14:09 Sometimes Java 閱讀(316) 評(píng)論(0)  編輯  收藏 所屬分類: Tech Flow
    主站蜘蛛池模板: 成人毛片免费网站| 免费成人福利视频| 亚洲第一视频在线观看免费| 亚洲videosbestsex日本| 最近中文字幕免费2019| 久久亚洲AV成人无码| 久久久久久毛片免费播放| 亚洲精品亚洲人成在线观看麻豆| 毛片在线播放免费观看| 亚洲VA成无码人在线观看天堂| 成人无码精品1区2区3区免费看| 久久久亚洲精品蜜桃臀| 国产一二三四区乱码免费| 国产精品久久久亚洲| 一区二区三区观看免费中文视频在线播放| 国产亚洲精品国产| 青青草无码免费一二三区| 亚洲一区二区三区亚瑟| 午夜毛片不卡高清免费| 一本久久A久久免费精品不卡| 国产亚洲精品不卡在线| 国产精品免费大片| 国产精品亚洲综合久久| 国产精品黄页在线播放免费| 亚洲黄片手机免费观看| 久久久久亚洲精品成人网小说 | 亚洲人成色777777在线观看| 毛片在线全部免费观看| 亚洲中文无码永久免| 免费va在线观看| 久久精品私人影院免费看| 亚洲成人黄色网址| 国产禁女女网站免费看| AAAAA级少妇高潮大片免费看| 亚洲综合久久1区2区3区| 日韩在线天堂免费观看| a级毛片免费高清毛片视频| 亚洲第一页在线观看| av无码东京热亚洲男人的天堂| aa级毛片毛片免费观看久| 亚洲人成影院午夜网站|