国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

它是最適合的 我熱愛Spring的五個理由

2019-11-18 15:45:18
字體:
來源:轉載
供稿:網友

  15年前6月的一個悶熱的早晨,我爬到一艘老式的玻璃纖維皮劃艇中。它是如此古老,以至于有些小碎片差點插到了我的手指中,而且劃槳長度大約是傳統激流劃槳的兩倍。我游泳的時候要多過劃船,但是這沒有關系。15年之后,我仍然對它著迷。

  大約2年前,我試用了在Hibernate站點上突出提到的SPRing項目。我覺得它就像是上面提到的老式皮劃艇:它再適合我不過了。為了進行企業硬編碼,Spring如此深植于我的編程工作中,以至于我使用它作為我第4本java著作《Spring: A Developer's Notebook》的主題。在本文中,我將說明其中的原因。

  1. Spring 提供更好的優勢

  在河流中,我學會了更多地使用我的腰和背來劃槳,因為我的手臂肌肉無法堅持整日在河上劃槳。我變得更加高效;我獲得了更好的利用率。借助于Spring,我可以使每行代碼做更多的事情。借助于Spring,您可以發現很多額外的手段,其中最大的一處是在持久性方面。下面給出一個Hibernate數據訪問對象中的方法:

public List getReservations( ) {  return getHibernateTemplate( ).find("from Reservation");}}

  注重您沒有看到的內容。這里沒有事務處理。Spring答應構建配置代碼來處理事務。不必通過關閉會話來治理資源。不必進行自己的配置。不必在這個層次上治理異常,因為異常是未經檢查的。可以自由地在最合適的位置治理它們。下面給出了另一個Hibernate方法,沒有使用Spring:

public List getBikesOldWay( ) throws Exception {  List bikes = null;  session s = null;  try {    s = mySessionFactory.openSession( );    bikes = s.find("from Bike");  }catch (Exception ex) {    //handle exception gracefully  }finally {    s.close( );  }  return bikes;

  Spring為您提供了更好的優勢。借助于Spring,可以更快地編寫代碼,而進行更少的維護。

  2. Spring支持POJO編程

  EJB 2.x失敗之后,我們都在尋求表達企業服務而不使用笨拙的模型侵入每個bean的方法。當然,我們需要事務、安全性、持久性,有時還需要遠程控制。對于EJB,我必須學習一個廣泛使用的API,并通過新的工具和部署流程開展工作。我是容器所提供的服務的奴隸。而借助于Spring,我可以選擇自己的服務和持久性框架。我進行POJO編程,并使用配置文件為它們添加企業服務。

  在《Spring: A Developer's Notebook》一書中,我構建了一個RentaBike應用程序。我把我的POJO稱作hibRentaBike,而不是會話bean或實體bean;它用作我的數據訪問對象。我還在別處添加了服務。Spring配置文件稱為context,它是一個xml文件,包含容器中所有的bean以及bean所需的屬性和服務。下面讓我們看一看。

  目標:

<bean id="rentaBikeTarget" class="com.springbook.HibRentABike">  <property name="storeName">    <value>BrUCe's Bikes</value>  </property>  <property name="sessionFactory">    <ref local="sessionFactory"/>  </property>  <property name="transactionManager">    <ref local="transactionManager"/>  </property></bean>  攔截器:
<bean name="transactionInterceptor"     class="org.springframework.transaction.interceptor.
TransactionInterceptor"> <property name="transactionManager"> <ref local="transactionManager"/> </property> <property name="transactionAttributeSource"> <value> com.springbook.RentABike.transferReservation= PROPAGATION_REQUIRED,-ReservationTransferException com.springbook.RentABike.save*=PROPAGATION_REQUIRED com.springbook.RentABike.*=PROPAGATION_REQUIRED,readOnly </value> </property></bean>



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 常山县| 巴塘县| 延津县| 房产| 改则县| 囊谦县| 皮山县| 乐陵市| 山西省| 邯郸市| 东丰县| 武山县| 如东县| 印江| 陆川县| 同德县| 饶平县| 柳河县| 桐柏县| 平利县| 金华市| 綦江县| 麻阳| 阿巴嘎旗| 南乐县| 曲阜市| 贵德县| 天气| 凤凰县| 枣庄市| 呼伦贝尔市| 阿图什市| 乐安县| 永善县| 安化县| 彰化市| 汉川市| 周口市| 巴林左旗| 合肥市| 都昌县|