跳到主要內容

發表文章

使用Spring的HibernateDAOSupport可能遇到的Lazy initialization問題

在專案中我們使用DAO這個pattern來封裝資料庫存取層,Hibernate Quickly (Manning)中建議我們可以繼承Spring所提供的HibernateDAOSupport來簡化DAO程式碼,這是很常見的作法。 原本method重複性很高的部份: public void create(Event event) throws DataAccessLayerException { try { startOperation(); session.save(event); tx.commit(); } catch (HibernateException e) { handleException(e); } finally { HibernateFactory.close(session); } } 可以被簡化為: public abstract class AbstractSpringDao extends HibernateDaoSupport{ public AbstractSpringDao() { } protected void saveOrUpdate(Object obj) { getHibernateTemplate().saveOrUpdate(obj); } protected void delete(Object obj) { getHibernateTemplate().delete(obj); } ... } 都透過Sprgin提供的HibernateTemplate幫我們作掉那些重複的開、關session, transaction動作。 以下擷取自Spring原始碼 package org.springframework.orm.hibernate3; ... public class HibernateTemplate extends HibernateAccessor implements HibernateOperations { ... public Object execute(HibernateCallback action) throws DataAccessException { Session session = (!this.a...

一個Web Application系統架構 (Spring + Struts + Hibernate)

近期使用這三套framework作系統,系統架構如下: 其中使用的Design Pattern: MVC: To separate core business model functionality from the presentation and control logic that uses this functionality. Such separation allows multiple views to share the same enterprise data model, which makes supporting multiple clients easier to implement, test, and maintain. Front Controller Use a controller as the initial point of contact for handling a request. The controller manages the handling of the request, including invoking security services such as authentication and authorization, delegating business processing, managing the choice of an appropriate view, handling errors, and managing the selection of content creation strategies. DAO(Data Access object) To abstract and encapsulate all access to the data source. The DAO manages the connection with the data source to obtain and store data. 如果同時運用這三個application framework,這樣的架構算是很常見。 Pros: 運用struts前端控制器(front controller)來集中管理頁面導引 Struts custom tag來強化 JSP的不足 用Sp...

Documentum E20-120 Content Management Foundations 考試心得

瞭解考試主題範圍 。因為相關的文件很多,如果要全部讀完才參加考試太過耗時。因為考試題目完全以官方所列的主題為主,連認證成績單上的得分率都以官方所列的主題作分類來評分。 [考試成績單] 所以考試主題作為準備的主軸會是比較有效率的方式,官方網站上可以抓到E20-120 Content Management Foundations Exam Exam Description。 [ExamDescription] 詳讀每個主題內容所描述的子題,以此準備可以確保不會漏掉任何一個方面。 [subTopics] 閱讀各項使用手冊 。單純只讀官方訓練教材只能給你一些基本概念,但是有些細節還是需要查手冊。以下是可能會需要參考的手冊清單 Content Server Fundamentals Content Server Administration Guide Content Server DQL Reference Manual Object Reference Manual Documentum Administrator User Guide 官方網站上的產品介紹 作筆記。 自行整理相關概念,可以幫助記憶。我是採用心智繪圖(Mind Map)來作筆記。 [DocumentumMindMap] 反覆作模擬試題來確定自己準備的狀況 。 EMC官方網站有模擬試題( 連結 )不過數量很少,只能算熱身瞭解一下題型。 dm_cram 有討論區與大量模擬試題的資源,還依照主題將模擬試題分類,所以你可以讀一個主題就練習該個主題的模擬試題,非常有利於複習。雖然模擬試題有許多複選題,不過實際考試的時候都是單選。 另外還有討論區可以與其他參加認證的人交流,這是我目前查到唯一的Documentum認證考試資源網站。 Documentum Content Mangement Foundations: EMC Proven Professional Certification Exam E20-120 Study Guide這本書的作者 Pawan Kumar也在這個論壇上活動,所以應該可以得到很正確的解答。 不過網站上的模擬試題有部份我覺得太刁鑽,如果真的查詢手冊找不到答案,我想應該可以忽略。

XMind使用心得

使用FreeMind有好一段時間,不過畫面單調一直是我不滿意之處。 XMind在畫面上好看很多,節點形狀樣式、分支線樣式有多樣選擇,也可以匯入FreeMind的檔案。 類似Excel般,工作頁活頁的概念也很不錯,可以將多個相關的心智圖存在一起。 可以某個分支為中心來檢視的功能也很令人激賞,完全符合心智圖那種可見樹、可見林的特性。 不過使用上有幾項缺點: 1.不能設定節點的預設文字大小。 預設應該是10點字,太小了,但是「喜好設定」內沒有地方可以修改,需要每次自己加大字型,很麻煩。 2.沒有加大字型的動作可以設定快速鍵。 我喜歡不只是用顏色,還有用字型的大小來凸顯主幹、分支的差別,不能快速的增大、縮小字型很不便。

eclipse plugin 安裝方法

自Eclipse 3.5以後,選 H elp \ Eclipse M arketplace 就可以進入軟體市集, 用關鍵字找到 plugin後可以直接點選安裝。   不需要記URL,也不需要找路徑, 日後也可以輕鬆反安裝,可說擁有以下4種方法的優點,唯一的小缺點是執行起來速度較慢。 以下4種方法都過時了。   1.直接存入eclipse目錄 將取得的plugin檔案(有的含有eclipse目錄,有的沒有,通常包含features,plugin兩個目錄 ),直接存入你原有eclipse的目錄下,重啟eclipse,plugin就會自動被載入。 優點:簡單 缺點:無法移除新增的plugin,因為新加的目錄都混在一起,沒有辦法得知哪些目錄屬於新增的plugin。若新的plugin造成eclipse的問題,只有重裝eclipse一途。 2.建link檔案 將plugin檔案集中在另一個自訂的目錄中,用連結檔案的方式將plugin載入到eclipse。 步驟: 1. 在 eclipse 目錄( ECLIPSE_HOME )下創建一個 links 目錄 2. links\ 目錄下創建一個 link 檔,檔名自訂 如要安裝一個 WTP plugin,建一個WTP .link ,內容指向WTP plugin放置的目錄 。 內容格式是: path= [plugin folder path] path=c:/eclipse_plugin/WTP 3. 此時在c:/eclipse_plugin/WTP/eclipse 下要有 WTP plugin的檔案 4. 移除該plugin 只要將對應的link檔拿掉即可 優點:移除方便、集中控管 缺點:要維護link檔、要自行檢查plugin間版本是否正確相容 3.用eclipse選單Find and Install 在上方選單 Help\Software Update\Find and Install,安裝新plugin選Search for new features to install Update Sites to Visit 此時會出現一些已經建好的update site,你要安裝...