將企業應用暴露為 Web Service 時,單純將 Action 綁定單一服務是反模式。本文展示如何在 Struts MVC 基礎上引入服務層,實現表現層與業務邏輯的真正解耦,支援多渠道(Web、WS、Mobile)複用。
Struts Action (Controller)
│
▼
Service Facade (EJB/Spring Bean) ← 事務邊界、安全、異常轉換
│
▼
Domain Model + DAO / ORM ← 純業務邏輯、持久化
UserService 介面,Action 依賴介面而非實現,便於 Stub/Mock 測試與 WS 包裝。Struts 不是終點,而是通往服務導向架構(SOA)的跳板。正確分層,才能讓 Web Service 自然生長。