「老是報錯、不知道怎麼解決」說明**缺乏系統性調試方法論**,而非不懂 Spring/Struts2/Hibernate 個別 API。
| 框架 | 核心必會點 | |
|---|---|---|
| Spring | IOC 容器啟動流程、Bean 生命周期、AOP 代理原理、事務傳播行為、循環依賴解決 | |
| Struts2 | 攔截器鏈執行順序、OGNL 表達式、值棧機制、結果類型、文件上傳攔截器 | |
| Hibernate | Session 生命周期、一級/二級緩存、懶加載與 N+1 問題、HQL/Criteria、鎖機制 |
| 錯誤關鍵字 | 高概率原因 | 排查方向 |
|---|---|---|
| BeanCreationException | 依賴注入失敗、構造函數拋異常、循環依賴 | 檢查 `@Autowired`、`@Resource`、構造器參數、延遲加載 `@Lazy` |
| NoSessionException / LazyInitializationException | Session 關閉後訪問懶加載集合 | Open Session In View Filter、FetchType.EAGER、DTO 投影查詢 |
| OGNL Exception | 表達式寫錯、屬性不存在、類型轉換失敗 | 檢查 JSP/Action 中 `#attr`、`%{}` 語法、Getter/Setter 名稱 |
| TransactionRollbackException | 事務回滾、異常未被捕獲/標記 | 檢查 `@Transactional(rollbackFor=Exception.class)`、try-catch 是否吞異常 |