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

為 Web Service 構建分層 Struts 應用:正確的 MVC 與服務解耦

     編輯:Java 相關知識

將企業應用暴露為 Web Service 時,單純將 Action 綁定單一服務是反模式。本文展示如何在 Struts MVC 基礎上引入服務層,實現表現層與業務邏輯的真正解耦,支援多渠道(Web、WS、Mobile)複用。

MVC 角色重審

  • Model:領域模型 + 服務層介面(非 Action 直接含 SQL)
  • View:JSP / Velocity / JSON / XML / SOAP 等多種渲染
  • Controller:ActionServlet → Action → 委派給服務層

分層架構

Struts Action (Controller)
      │
      ▼
Service Facade (EJB/Spring Bean)  ←  事務邊界、安全、異常轉換
      │
      ▼
Domain Model + DAO / ORM        ←  純業務邏輯、持久化

關鍵改造點

  1. Action 瘦身:僅負責參數綁定、驗證、轉發,零業務邏輯。
  2. 服務層接口化:定義 UserService 介面,Action 依賴介面而非實現,便於 Stub/Mock 測試與 WS 包裝。
  3. 異常統一處理:服務層拋出業務異常,Action 映射為用戶友好訊息或 SOAP Fault。
  4. Web Service 適配:用 JAX-RPC/JAX-WS 將服務層直接發布為 Endpoint,Action 與 WS 共享同一服務實例,零代碼重複。

收益

  • 單元測試無需啟動 Servlet 容器,直接測 Service。
  • 新增 REST/GraphQL 端點只需薄適配層,核心邏輯不動。
  • 事務邊界清晰集中在服務層,避免 Action 中手動管理事務的混亂。

Struts 不是終點,而是通往服務導向架構(SOA)的跳板。正確分層,才能讓 Web Service 自然生長。

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