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

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

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

    Spring Framework之最佳實(shí)踐一



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

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

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

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


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

    (未完,待續(xù))



    posted on 2006-07-26 17:08 nbt 閱讀(752) 評(píng)論(1)  編輯  收藏 所屬分類: Spring框架

    評(píng)論

    # re: Spring Framework之最佳實(shí)踐一 2006-08-02 17:00 楊一

    Spring的MVC做的干凈利落,值得推薦  回復(fù)  更多評(píng)論   

    <2006年7月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java技術(shù)網(wǎng)站

    友情鏈接

    國內(nèi)一些開源網(wǎng)站

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 一区二区三区视频免费观看| 大地资源免费更新在线播放 | 久久精品国产亚洲AV电影网| 久久久久久久久久国产精品免费| 国产亚洲精久久久久久无码77777| 最新亚洲人成无码网站| 国产福利免费在线观看| 国产成人亚洲综合a∨| 精品国产免费人成网站| 久久久久亚洲AV无码专区网站| 91精品国产亚洲爽啪在线观看| 久久久免费的精品| 久久精品国产亚洲精品2020| 6080午夜一级毛片免费看 | 国产老女人精品免费视频| 亚洲日韩在线中文字幕综合 | 亚洲av无码片在线播放| 免费不卡在线观看AV| 亚洲国产av一区二区三区丶| 一个人看www在线高清免费看| 亚洲成片观看四虎永久| 日本高清不卡中文字幕免费| 91精品国产免费网站| 亚洲性线免费观看视频成熟 | 又黄又大又爽免费视频| 久久精品国产亚洲精品| 久久国产乱子伦精品免费强| 国产午夜免费秋霞影院| 亚洲va在线va天堂va888www| 四虎精品视频在线永久免费观看| 亚洲片一区二区三区| 香蕉免费一区二区三区| 久久夜色精品国产噜噜亚洲a| 久久大香香蕉国产免费网站| 亚洲午夜无码片在线观看影院猛| 18禁超污无遮挡无码免费网站| 亚洲AV无码成人精品区大在线| 久久精品国产免费一区| 亚洲综合一区二区三区四区五区| 亚洲人成影院在线观看| 国产精品一区二区三区免费 |