Spring Framework之最佳實踐一



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

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

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

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


          這樣,就可隨時動態擴展,實現組件式的開發。

          (未完,待續)



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

          評論

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

          Spring的MVC做的干凈利落,值得推薦  回復  更多評論   

          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          收藏夾

          Java技術網站

          友情鏈接

          國內一些開源網站

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 泾源县| 临桂县| 肥西县| 奉节县| 海口市| 神木县| 布尔津县| 清苑县| 砚山县| 涡阳县| 若尔盖县| 长子县| 长沙县| 鲜城| 咸宁市| 鞍山市| 金堂县| 新蔡县| 佛山市| 工布江达县| 五常市| 达尔| 类乌齐县| 望谟县| 东山县| 太仆寺旗| 汉沽区| 湛江市| 景谷| 安塞县| 遂川县| 双江| 东至县| 张家界市| 馆陶县| 大连市| 黄浦区| 安顺市| 比如县| 策勒县| 怀安县|