資料驗證是企業應用的必備環節,但常被誤解與誤用。本文依驗證類型劃分,給出分層放置的最佳策略。
將驗證前置於委派類,最近客戶端,最低成本回饋錯誤:
public class LibraryDelegate implements ILibrary {
public boolean checkout(List books) throws ApplicationException {
// 格式驗證:確保清單皆為 Book 物件
for (Object obj : books) {
if (!(obj instanceof Book)) {
throw new ApplicationException(VALIDATION_ERROR,
"清單僅允許 Book 物件");
}
}
return library.checkout(books); // 呼叫 EJB
}
}
優勢:避免遠端呼叫開銷 (JNDI/RMI/事務),錯誤直接拋回 Web 層顯示。
需存取其他 Bean/資料庫,放回 EJB 層利用本地呼叫優化:
| 驗證類型 | 建議位置 | 核心理由 |
|---|---|---|
| 資料格式 | Business Delegate | 就近原則、低延遲回饋、避免遠端開銷 |
| 業務規則 | EJB Bean 實作 | 需資料存取、利用本地呼叫、委派已過濾格式 |
下一篇將探討如何進一步將驗證從委派層剝離,實現可重用的驗證框架。