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

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

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

    讀《J2EE Development without EJB》 筆記五

    Posted on 2006-01-13 22:24 JDeodar 閱讀(412) 評論(0)  編輯  收藏 所屬分類: J2EE
    Tansation Management -- 事務管理

    應用程序可以用于以下兩種手段來管理容器事務,從而控制應用服務器的事務管理服務
    1、編程式事務管理:使用JTA UserTransaction對象,通過JNDI獲取
    2、聲明式事務管理:通過使用組建模型(即EJB CMT),這是一種建立在JTA基礎設施之上的高層的服務
    這兩種方法通常都被命名為“受控的事務”(EJB CMT)。

    容器管理事務(Container-Managed Transaction)
    優點:把事務管理從Java代碼中挪到了EJB部署描述符中。因此事務編程了一個無需硬編碼的橫切面。
    缺點:
    1、只有EJB才能夠使用聲明式事務管理
    2、聲明式事務實際上也符合80-20原則
    3、EJB CMT必須使用全局事務管理,如果僅需要單事務的資源,大材小用。

    Spring的聲明式事務管理建立在Spring的AOP框架之上,所以Spring的事務管理需要帶有AOP功能的Spring Bean工廠。
    事物的傳播類型:(6種)
    1、“required”運行在當前的事務范圍內,如果當前沒有啟動事務,那么創建一個新的事物
    2、“supports”運行在當前的事務范圍內,如果當前沒有啟動事務,那么就不在事務范圍內執行
    3、“mandatory”運行在當前的事務范圍內,如果當前沒有啟動事務,那么拋出異常
    4、“requires new”創建一個新的事務,如果當前啟動了事務,那么掛起當前事務
    5、“not supported”不在事務范圍內執行,如果當前啟動了事務,那么掛起當前事務
    6、“never”不在事務范圍內執行,如果當前啟動了事物,那么拋出異常
    默認的事務類型是“required”,適用于絕大多數的情況。

    編程式事務管理通常有以下兩種使用方式:一是通常的使用方式,在一個catch代碼塊中對任何異常進行回滾處理;二是通過一個“控制反轉(IoC)”模版類和一個回調實現。
    事物管理最適合使用AOP。

    Spring的事務處理最重要的好處是,在不需要任何部署步驟和特定的需要的情況下,可以讓POJO具備事務處理能力。

    YAGNI(You Arent Gonna Need It,不要為不必要的需求埋單)

    Persistence -- 持久化

    Patterns of Enterprise Application Architecture(2002 Martin Fowler),常簡稱POEAA -- 一定要讀

    處理批量存取和批量更新時,O/R映射會有問題,不知道什么時候才能解決優化呢?

    下面的征兆,可以考慮使用O/R映射:
    1、針對領域對象的“加載/編輯/存儲”流程,例如先加載一條產品記錄,對其進行修改,然后更新會數據庫。
    2、對象以批量查詢的方式取出,但更新和刪除則是單獨進行。
    3、大量對象需要積極地緩存(通常出現在“讀操作遠多于寫操作”的情況下,如web應用。)
    4、在領域對象與數據庫表/字段之間有一個相當自然的對應關系。
    5、不需要對SQL進行特別的優化。

    細粒度的領域模型不應該用重量級的EJB組件來建模,而應該用簡單的Java對象——POJO(Plain Old Java Object)——來建模。
    所有的持久化技術必然會涉及對資源的管理:
    1、連接工廠
    2、連接

    DAO模式的用途是將“與持久化相關的代碼”從業務邏輯中分離出來,換句話說,把業務流程和規則放在一邊,與持久化相關的問題放在另一邊。DAO模式需要一個DAO接口,以便將特定的數據訪問實現細節隱藏起來。

    使用Spring框架進行數據訪問
    1、Spring的bean工廠和應用上下文容器使得應用程序中的各種對象能夠輕松地裝配起來。
    2、Spring有一個清晰的事務模型
    3、Spring提供了一個通用的數據庫訪問異常體系。
    4、對于各種持久化方式,Spring用形式統一的模版機制解決了關閉連接、處理異常等問題。

    JdbcTemplate實例(以及別的Spring模版)都是線程安全的,允許多線程復用。因此只需要在DAO初始化將一個JdbcTemplate實例提供給它,所有的DAO方法都可以使用這同一個模版實例,不必擔心任何同步問題。

    Spring框架提供了另一個層次較高的JDBC抽象:可詢操作、更新操作或是存儲過程。

    posts - 10, comments - 2, trackbacks - 0, articles - 0

    Copyright © JDeodar

    主站蜘蛛池模板: 国产在线观看免费视频软件 | AA免费观看的1000部电影| 国产AⅤ无码专区亚洲AV| 日本在线观看免费高清| 亚洲国产成人久久综合一区77| 日韩色视频一区二区三区亚洲| 日韩a级毛片免费视频| 国产亚洲日韩在线a不卡| 免费a级黄色毛片| 亚洲国产免费综合| 亚洲成Av人片乱码色午夜| 在线成人爽a毛片免费软件| 亚洲国产精品综合久久网各| 美女视频黄a视频全免费| 亚洲熟妇无码AV| 亚洲欧洲国产成人综合在线观看| 一级特黄录像视频免费| 亚洲国产成人片在线观看无码| 久久久久久AV无码免费网站| 亚洲人成电影在线观看网| 国内精品免费视频自在线| 成人免费夜片在线观看| 久久亚洲国产中v天仙www| 最近中文字幕电影大全免费版| 中文字幕乱码亚洲无线三区| 免费va在线观看| 免费在线看黄网站| 在线亚洲高清揄拍自拍一品区| 国产一区二区免费在线| 中文字幕乱码免费看电影| 亚洲免费观看在线视频| 又色又污又黄无遮挡的免费视| 97在线免费观看视频| 亚洲第一区二区快射影院| 亚洲精品高清在线| 成年人视频免费在线观看| 深夜a级毛片免费无码| 亚洲综合婷婷久久| 四虎免费久久影院| 四虎在线最新永久免费| 一级黄色免费大片|