国产探花免费观看_亚洲丰满少妇自慰呻吟_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>



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴彦县| 清镇市| 阿巴嘎旗| 子洲县| 景泰县| 宜兴市| 吴川市| 明溪县| 广元市| 镇赉县| 昌都县| 阳泉市| 错那县| 中江县| 东辽县| 土默特左旗| 莱西市| 黔南| 河南省| 贵州省| 武胜县| 平度市| 嘉定区| 吉林市| 山东省| 司法| 苍南县| 舞阳县| 通城县| 桐庐县| 广灵县| 永清县| 嘉禾县| 贵溪市| 桦川县| 镇宁| 辛集市| 策勒县| 金昌市| 客服| 沛县|