[摘]Struts+Spring+Hibernate整合

linweihan1984發表於2007-10-15
使用平臺:Eclipse3.2、MyEclipse5.01GA
Struts、Spring、Hibernate三個框架在MyEclipse下新增順序為:
首先新建一個Web Project,

1.新增Add Struts Capabilities…,設定好包路徑後繼續;

2.選擇MyEclipse選單下的Add Spring Capabilities…選擇所有的標籤庫,JAR Library Installation位置選擇“Copy”項,下一步,設定Spring Bean配置檔案位置,一般就預設在SRC目錄(我覺著可以新增到WEB-INF目錄下),點選完成,就新增了Spring,繼續;

切換到MyEclipse Database Explorer(資料庫瀏覽器檢視),新增一個資料連線,測試連線成功後繼續,這一步是為了給下面新增Hibernate框架準備的,因為它在建立過程中需要指定一個有效連線資料庫的連線;

3.選擇MyEclipse選單下的Add Hibernate Capabilities…選擇反有的標籤庫,包括Spring的,JAR Library Installation位置還是選擇“Copy”項,下一步;因為之前新增了Spring框架,所以這裡就會自動識別到,並詢問你使用Hibernate的配置檔案“hibernate.cfg.xml”還是使用Spring的配置檔案“applicationContext.xml”,這裡選擇Spring來統一配置,下一步;此處是定義Spring配置檔案是需要新建還是使用已存在的Spring配置檔案,這裡選擇Existing Spring configuration file,即使用已存在的Spring配置檔案“src/applicationContext.xml”,下方需要指定Hibernate的SessionFactory在Spring配置檔案中的Bean ID,使用“sessionFactory”即可,下一步;在DB Profile的下拉選單中選擇剛剛建立的連線,並在Bean ID處設定這個DataSource在Spring配置檔案中的Bean ID名,這裡使用“DataSource”(可以寫成dataSource),下一步;接下來的Define SessionFactory properties介面是配置Hibernate的SessionFactory工具類存放位置,設定好包路徑後,下一步;點選Finish,就完成了對Struts、Spring、Hibernate三個框架的設定。

這裡還需要配置Log4J(日誌工具),只需將以下兩個檔案複製到SRC目錄下即可
commons-loggingproperties.properties
log4j.properties
至於這兩檔案裡的具體配置就不再多說。

接下來,先完成JSP頁面、ActionForm、及Action的新增,新增過程就不再多說。再就是為資料表新增持久化類,過程是在MyEclipse DataBase Explorer中開啟連線,找到所需的表後,滑鼠右鍵點選表名,選擇“Hibernate Reverse Engineering…”,設定了包路徑後,依次鉤選“Hibernate Mapping File”、“Java Data Object”(取消鉤選“Create abstract class”)以及“Java Data Access Object(DAO)”,在“Java Data Access Object(DAO)”下會自動鉤選“Generate precise findby methods”,以及選擇“Spring DAO”選項,使用“Spring DAO”後,在DAO類裡轉而使用了HibernateTemplate物件來運算元據庫,據說可以免去事務管理,具體情況,明天再繼續研究。生成完持久化類後,需要在Struts-config.xml檔案裡新增以下欄位:(新增這段也可以通過自動的加進來,專案有個plugin外掛的選擇外掛的名字是ContextLoaderPlugIn,然後property是contextConfigLocation,vlalue是:只要找到applicationContext.xml的具體路徑把它新增到sturts-config.xml目錄下就可以了)
<plug-in className=
   "org.springframework.web.struts.ContextLoaderPlugIn">
     <set-property property=
       "contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>
</plug-in>

Value值就指定了Spring配置檔案applicationContext.xml檔案具體包位置。

接著在Action中需要做以下操作:
匯入import org.springframework.web.struts.ActionSupport;包
原先Action是繼承Action類的,例:
public class EmployeeListAction extends Action
這裡將它改為繼承ActionSupport類,例:
public class EmployeeListAction extends ActionSupport

生成一個資料表的DAO物件,格式如下:
EmployeeinfoDAO empDao=EmployeeinfoDAO.getFromApplicationContext(this.getWebApplicationContext());        
List empList=empDao.getHibernateTemplate().loadAll(Employeeinfo.class);   

相關文章