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

    積分與排名

    • 積分 - 13760
    • 排名 - 2082

    最新評論

    二、spring管理對象的簡單例子

     

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

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

    /*
     * 創(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)簽,注冊了一個(gè)HelloTalker對象,它的名字叫做helloTalker。然后我們編寫一個(gè)測試類,它的工作是利用spring框架提供的接口,加載配置文件,通過指定對象的id,獲得一個(gè)對象。它的代碼如下:

    /*
     * 創(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è)對象HelloTalker被注冊到了spring中,所以不存在對象間的依賴,當(dāng)然也就不涉及依賴注入。下面演示一個(gè)簡單的依賴注入:

      第一步是修改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動態(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中,它會被動態(tài)的注入到HelloTalkername屬性中,greeting方法將會把它打印出來。重新運(yùn)行剛才的junit類,可以看到結(jié)果。

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

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

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

    posted on 2005-03-28 14:09 Sometimes Java 閱讀(314) 評論(0)  編輯  收藏 所屬分類: Tech Flow
    主站蜘蛛池模板: 精品日韩亚洲AV无码一区二区三区| 亚洲永久中文字幕在线| 久久国产乱子伦免费精品| 亚洲一区二区三区乱码在线欧洲| 国内大片在线免费看| 美女黄频免费网站| 午夜影视日本亚洲欧洲精品一区 | 日产久久强奸免费的看| 久久精品夜色国产亚洲av| 成年性生交大片免费看| a毛看片免费观看视频| 亚洲日韩精品无码专区| 中文亚洲AV片不卡在线观看 | 亚洲精品无码永久在线观看| 久久99精品国产免费观看| 色综合久久精品亚洲国产| 亚洲精品高清国产一久久| 免费一级黄色毛片| 在线视频精品免费| 最新亚洲成av人免费看| 亚洲国产日韩a在线播放| 亚洲国产精品国自产电影| 亚洲国产高清精品线久久| 1000部拍拍拍18勿入免费凤凰福利| 国产精品成人亚洲| 亚洲av日韩av无码av| 国产亚洲精久久久久久无码77777| 美女视频黄a视频全免费| 在线播放免费人成毛片乱码| 精品国产亚洲一区二区三区在线观看| 亚洲gv白嫩小受在线观看| 亚洲JIZZJIZZ中国少妇中文| 天天影院成人免费观看| 波多野结衣免费一区视频| 黄色免费网址在线观看| 亚洲欧洲专线一区| 亚洲成人免费网址| 久久久久久亚洲Av无码精品专口 | 亚洲人成网站在线播放影院在线| 婷婷综合缴情亚洲狠狠尤物| 免费看国产精品3a黄的视频|