首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 學習雜談(十一)—— Spring 框架核心機制與 MVC 實現

     編輯:Java 相關知識

Spring 核心定位

引用《Spring 2.0 技術手冊》:「Spring 核心是輕量級容器,實現 IoC 容器與非侵入式框架,提供 AOP 實現、持久層/事務支持、MVC Web 框架、企業服務 API 一致封裝,並與現有框架整合。」

輕量級 vs 重量級:本質差異

  • 重量級 (EJB 2.x):Container + Factory。Web Container 與 EJB Container 物理隔離,跨容器通信依賴 RMI/JNDI,同進程卻遠程調用,開銷大。
  • 輕量級:POJO + IoC。組件為普通 Java 對象,依賴關係由容器注入(IoC),而非工廠主動查找。IoC 靈活配置注入細節,Factory 模式行為固化。
  • Spring 目標:非侵入性——業務代碼零依賴 Spring API,隨時可抽離;面向接口編程——全程針對接口,不綁定實現類。

Spring MVC 處理流程詳解

核心組件對應 Struts:

StrutsSpring MVC職責
ActionServletDispatcherServlet前端控制器,統一入口
ActionController後端控制器,處理業務
ActionForwardModelAndView封裝模型數據與視圖名
RequestProcessor/InterceptorInterceptor預/後處理攔截

請求處理完整鏈路

  1. 前端 JSP/HTML 提交表單,數據進入 request 域。
  2. Interceptor.preHandle() 執行前置判斷(權限、日誌等)。
  3. 請求到達 DispatcherServlet。
  4. DispatcherServlet 通過 HandlerMapping 根據 URL 定位目標 Controller。
  5. Controller 處理業務,返回 ModelAndView。
  6. DispatcherServlet 交給 ViewResolver 解析視圖名稱,渲染視圖(JSP/FreeMarker/Thymeleaf 等)。
  7. Interceptor.postHandle() / afterCompletion() 執行後置邏輯。
  8. 響應返回瀏覽器。

IoC 容器與 AOP 回顧

  • IoC (Inversion of Control):依賴注入 (DI) 實現控制反轉。BeanFactory/ApplicationContext 管理 Bean 生命周期、作用域、依賴圖。
  • AOP (Aspect-Oriented Programming):將橫切關注點(事務、日誌、安全)模塊化為切面,通過動態代理 (JDK Proxy/CGLIB) 織入。聲明式事務(@Transactional)是典型應用。

Spring 整合生態

提供統一模板類簡化主流技術使用:

  • JdbcTemplate、NamedParameterJdbcTemplate (JDBC)
  • HibernateTemplate / SessionFactoryUtils (Hibernate)
  • JmsTemplate (JMS)
  • JpaTemplate / EntityManagerFactoryUtils (JPA)
  • RestTemplate (REST Client)
  • 事務管理:PlatformTransactionManager 統一編程式/聲明式事務。

學習建議

學習 Spring 不是記 API,而是理解其代表的設計思想:IoC 解耦、AOP 橫切分離、模板模式消除樣板代碼、統一抽象屏蔽底層差異。像當年學 Struts 一樣,掌握核心模式,舉一反三。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved