首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 2 + Spring 2 + Hibernate 3 + DWR 整合實戰:從資料庫到 AJAX 前端

     編輯:Java 相關知識

專案背景

採用 MyEclipse 內建 Derby 資料庫,建立 BOOK 表(ID、NAME、ISBN、AUTHOR),利用 Hibernate 反向工程產生 Domain、DAO、Mapping,再疊加 Spring 事務管理與 DWR 遠端呼叫,構建完整的 CRUD 應用。

關鍵配置拆解

1. Spring 分模組配置

  • applicationContext-db.xml:BasicDataSource + LocalSessionFactoryBean,掃描 Book.hbm.xml
  • applicationContext-dao.xml:BookDAO 注入 sessionFactory
  • applicationContext-service.xml:BookManageServiceImpl 注入 BookDAO,以 TransactionProxyFactoryBean 宣告式事務(PROPAGATION_REQUIRED + readOnly)

2. web.xml 整合

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext-*.xml</param-value>
</context-param>
<listener>ContextLoaderListener</listener>

<servlet>
  <servlet-name>dwr-invoker</servlet-name>
  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
  <init-param><param-name>debug</param-name><param-value>true</param-value></init-param>
</servlet>
<servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>

3. dwr.xml 曝露服務

<allow>
  <convert converter="bean" match="edu.jlu.fuliang.domain.Book"/>
  <create creator="spring" javascript="BookManageService">
    <param name="beanName" value="bookManageService"/>
    <include method="getAllBooks"/> ... </create>
</allow>

4. 前端 index.jsp

引入 BookManageService.js、engine.js、util.js,以 dwr.util.cloneNode 動態渲染表格,dwr.engine.beginBatch()/endBatch() 批次新增/修改後自動重繪。完整 JavaScript 邏輯含載入、新增、編輯、刪除、錯誤處理。

實戰踩坑筆記

  • Spring 2.0 AOP 的 asm-2.2.3.jar 與 Hibernate 內建 asm.jar 衝突 → 刪除 Spring 版本
  • Spring 需 commons-pool 但 MyEclipse 僅引入 commons-dbcp → 手動補齊
  • DWR creator="spring" 需確保 Service Bean 名稱與 beanName 一致

架構優勢

分層清晰(Domain → DAO → Service → Web/AJAX),事務集中管理,DWR 讓前端像呼叫本地 JS 一樣存取後端服務,開發效率大幅提升。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved