引用《Spring 2.0 技術手冊》:「Spring 核心是輕量級容器,實現 IoC 容器與非侵入式框架,提供 AOP 實現、持久層/事務支持、MVC Web 框架、企業服務 API 一致封裝,並與現有框架整合。」
核心組件對應 Struts:
| Struts | Spring MVC | 職責 |
|---|---|---|
| ActionServlet | DispatcherServlet | 前端控制器,統一入口 |
| Action | Controller | 後端控制器,處理業務 |
| ActionForward | ModelAndView | 封裝模型數據與視圖名 |
| RequestProcessor/Interceptor | Interceptor | 預/後處理攔截 |
request 域。Interceptor.preHandle() 執行前置判斷(權限、日誌等)。DispatcherServlet。DispatcherServlet 通過 HandlerMapping 根據 URL 定位目標 Controller。Controller 處理業務,返回 ModelAndView。DispatcherServlet 交給 ViewResolver 解析視圖名稱,渲染視圖(JSP/FreeMarker/Thymeleaf 等)。Interceptor.postHandle() / afterCompletion() 執行後置邏輯。BeanFactory/ApplicationContext 管理 Bean 生命周期、作用域、依賴圖。@Transactional)是典型應用。提供統一模板類簡化主流技術使用:
JdbcTemplate、NamedParameterJdbcTemplate (JDBC)HibernateTemplate / SessionFactoryUtils (Hibernate)JmsTemplate (JMS)JpaTemplate / EntityManagerFactoryUtils (JPA)RestTemplate (REST Client)PlatformTransactionManager 統一編程式/聲明式事務。學習 Spring 不是記 API,而是理解其代表的設計思想:IoC 解耦、AOP 橫切分離、模板模式消除樣板代碼、統一抽象屏蔽底層差異。像當年學 Struts 一樣,掌握核心模式,舉一反三。