Hibernate的典型持久化操作遵循以下八步流程:
hibernate.cfg.xml)SessionFactorySession(資料庫會話)Transaction)SessionSessionFactory(應用關閉時)Hibernate 2:支援實體對象與集合的延遲加載。
Hibernate 3:進一步引入屬性級延遲加載。
核心原理:查詢時數據不載入記憶體,僅在真正訪問對象時觸發SQL,有效降低伺服器記憶體佔用,提升效能。
透過配置文件中的<many-to-one>、<one-to-many>、<many-to-many>等元素,將資料表關聯映射為對象關係,程式碼層面純粹操作對象圖。
Session,事務範圍內自動生效,不可關閉。Bag,多對多用SetActionServlet,解析struts-config.xml至配置對象ActionMapping → 無匹配則返回404ActionForm,自動填充表單數據validate()進行表單驗證Action(不存在則創建)Action.execute()業務邏輯,返回ActionForwardActionServlet轉發至目標JSP生成動態頁面響應客戶端早期JSP/Servlet/JavaBean開發導致業務邏輯與展示邏輯耦合嚴重,Struts引入MVC規範,將應用拆分為控制器(ActionServlet)、模型(Action/ActionForm/JavaBean)、視圖(JSP+標籤庫)三層,建立了企業級Web開發的第一代標準架構。
雙重驗證機制:
① 服務端:在ActionForm中覆寫validate()方法
② 客戶端/聲明式:在validator-rules.xml與validation.xml中配置規則與錯誤提示
DispatcherServletHandlerMapping尋找目標ControllerController執行業務邏輯ModelAndView封裝模型與視圖邏輯名ViewResolver解析視圖物件容器管理對象生命週期與依賴關係,開發者僅在配置中聲明依賴,實現「高層模組不依賴低層模組,共同依賴抽象」。支援Constructor Injection、Setter Injection、Interface Injection三種注入模式。
將日誌、事務、安全等橫切關注點模組化,通過代理動態織入業務邏輯,實現零侵入式增強。聲明式事務管理是典型應用場景,無需依賴EJB容器。
BeanFactory實現IoC核心XmlBeanFactory為最常用實現,支援延遲初始化。ApplicationContext繼承BeanFactory並添加國際化、事件發布、資源載入等企業級特性。Bean作用域包括singleton(預設,無狀態服務)與prototype(有狀態組件)。
透過三個服務介面(CreditRatingInterface、CreditLinkingInterface、EmailInterface)演示Spring如何將鬆耦合的協作對象注入業務流程,配置文件驅動依賴組裝,無需硬編碼new操作。