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

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

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

    隨筆-72  評論-20  文章-0  trackbacks-1

    Spring Framework從誕生之日起,受到了越來越多的關(guān)注。最近,新的開源項目大多支持Spring Framework。國內(nèi)目前也有專門的網(wǎng)站(http://spring.jactiongroup.net/)。那它為什么如此受歡迎呢?

    我想最重要的是,EJB讓每個人都痛恨。要編寫一個EJB,需要寫LocalHome, RemoteHome, Bean, LocalInterface, RemoteInterface,需要一個標準描述符,一個特殊廠商描述符(Weblogic、WebSphere都不一樣),如果是Entity Bean,還需要Mapping文件。如此之多,實在麻煩。但EJB最重要的是解決Transaction問題,沒有Spring之前,沒有其他方法能夠 描述式的解決它。每個人、每個公司為了解決Transaction的問題,編程的寫法都不一樣,百花齊放。于是,在最需要它的時候,Spring出現(xiàn)了。

    Spring的功能非常多。但對于一個產(chǎn)品,最重要的是如何用好它的精華。Spring包含AOP、ORM、DAO、Context、Web、 MVC幾個部分組成。Web、MVC暫不用考慮,用成熟的Struts、JSP或Webwork更好。DAO由于目前Hibernate、JDO的流行, 也可不考慮。因此最需要用的是AOP、ORM、Context。

    Context中,最重要的是Beanfactory,它是將接口與實現(xiàn)分開,非常重要。以前我們寫程序,如一個接口IDocument,一個實現(xiàn) 類Document1。在寫程序時,需寫成IDocument doc = new Document1(),一旦我們的實現(xiàn)類需改變時,變?yōu)镈ocument2,則程序需寫成IDocument doc = new Document2(),所有用到的地方全需改。Beanfactory幫我們解決了這個問題,用context后,寫法變?yōu)镮Document doc=(IDocument)beanFactory.getBean("doc")。如果實現(xiàn)類從Document1改為Document2,直接在 配置文件改就可以了。Context是Bean factory的進一步抽象。很多人都喜歡用ApplicationConext,用Servlet把它Load。這樣就把Bean Factory與Web綁定在一起。如果是Fat Client或Remote調(diào)用,則這些Bean factory就很難調(diào)用,實際是將表現(xiàn)層與業(yè)務(wù)層綁定的太緊。推薦的方法是SingletonBeanFactoryLocator。具體為:

    BeanFactoryLocator bfLocator = SingletonBeanFactoryLocator.getInstance();
    BeanFactoryReference bf 
    = bfLocator.useBeanFactory("beanFactory");
    // now use some bean from factory
    return bf.getFactory().getBean(name);

     


    <beans>

         
    <bean id="beanFactory" class="org.springframework.context.support.ClassPathXmlApplicationContext">
         
    <constructor-arg>
          
    <list>
           
    <value>dataAccessContext.xml</value>
           
    <value>securityContext.xml</value>
           
    <value></value>
          
    </list>
         
    </constructor-arg>
        
    </bean>

    </beans>


    這樣,就可隨時動態(tài)擴展,實現(xiàn)組件式的開發(fā)。

    (未完,待續(xù))

    posted on 2008-08-14 15:13 前方的路 閱讀(298) 評論(0)  編輯  收藏 所屬分類: Java技術(shù)
    主站蜘蛛池模板: 亚洲黄网站wwwwww| 国产成人精品高清免费| 亚洲视频在线观看| 成人最新午夜免费视频| 亚洲日韩乱码中文无码蜜桃臀| 大地资源网高清在线观看免费| 亚洲第一成年网站大全亚洲| 国产免费拔擦拔擦8x| 免费萌白酱国产一区二区三区| 亚洲色大成网站www尤物| 最近2019中文字幕mv免费看 | 亚洲综合精品成人| 红杏亚洲影院一区二区三区| 无码乱肉视频免费大全合集| 九九免费观看全部免费视频| 亚洲人成影院在线观看| 亚美影视免费在线观看| 亚洲熟女一区二区三区| 手机在线免费视频| 久久精品电影免费动漫| 精品女同一区二区三区免费播放| 2022年亚洲午夜一区二区福利| avtt亚洲天堂| 三级毛片在线免费观看| 亚洲人成色在线观看| 亚洲国产高清视频| 亚洲AV蜜桃永久无码精品| 亚洲一级毛片免费观看| 亚洲 日韩 色 图网站| 日本一道一区二区免费看 | 亚洲av手机在线观看| 亚洲国产成人手机在线观看| 亚洲国产精品丝袜在线观看| 成人福利免费视频| 老司机69精品成免费视频| 污污污视频在线免费观看| 亚洲精品精华液一区二区| 亚洲小视频在线播放| 久久精品夜色国产亚洲av| 亚洲精品麻豆av| 国产成人精品免费视频大全五级 |