一、什麼是Spring Spring是一個開源的控制反轉和麵向切麵(AOP)的容器框架。它的主要目的是使現有技術更加易用,推薦編碼最佳實現,從而簡化企業的開發。 提:使用Spring的好處有以下幾項: 1. 降低組件之間的耦合度,實現軟體各層之間的解耦合 2. Spring 對於主流的應用框架提供了 ...
一、什麼是Spring
Spring
是一個開源的控制反轉和麵向切麵(AOP)的容器框架。它的主要目的是使現有技術更加易用,推薦編碼最佳實現,從而簡化企業的開發。
提:使用Spring的好處有以下幾項:
1.
降低組件之間的耦合度,實現軟體各層之間的解耦合
2.
Spring 對於主流的應用框架提供了集成支持
3.
Spring容器提供了眾多輔助類,使用這些類能夠加快應用程式的開發
4.
Spring容器提供了 AOP 技術,使用它很容易實現如許可權攔截等功能
5.
Spring可以使用容器提供的眾多服務,如事務管理服務等
6.
Spring容器提供了對單例模式支持,不需要開發者自己寫代碼實現
提:Spring
包含模塊的七大模塊有:
1.
核心容器模塊、Spring 上下文模塊、Spring AOP模塊、Spring ORM模塊、Spring DAO模塊、Spring Web模塊、Spring MVC模塊
提:什麼是依賴註入、控制反轉、依賴
1.
依賴註入:依賴註入是指在運行期,由外部容器動態地將依賴對象註入到組件中。依賴註入讓 Bean 與 Bean 之間以配置文件組織在一起,而不是以硬編碼的方式耦合在一起。
2.
控制反轉:在傳統的程式設計過程中,都是在應用內部創建及維護依賴的對象。控制反轉就是應用本身不負責依賴對象的創建及維護,依賴對象的創建及維護是由外部容器負責的。這樣控制權就由應用轉移到外部容器,控制權的轉移就是控制反轉。
3.
依賴:在兩個元素中一個定義發生改變則另一個元素也會隨著改變,則稱這兩個元素之間存在依賴關係。
提:Spring AOP的核心概念
1.
Aspect(切麵):切麵,是對交叉業務邏輯的統稱。
2.
Joinpoint(連接點):連接點,指切麵可以織入到目標對象的位置(方法,屬性等)。
3.
Advice(通知):通知,指切麵的具體實現。
4.
Pointcut(切入點):切入點,指通知應用到哪些類的哪些方法或屬性之上的規則。
5.
Introduction(引入):引入,指動態地給一個對象增加方法或屬性的一種特殊的通知。
6.
Weaving(織入):織入,指將通知插入到目標對象。
7.
Target(目標對象):目標對象,指需要織入切麵的對象。
提:實際開發過程中開發者為什麼要拆分Spring的配置文件
1. 當項目規模大的時候,配置文件可讀性、可維護性差,龐大的 Spring 配置文件難以閱讀。
2. 團隊開發時,多人修改同一配置文件容易發生衝突,降低開發效率。
二、Spring MVC 工作機制
1. SpringMVC 請所有的請求都提交給DispatcherServlet(核心控制器),它會委托給應用系統
的其他模塊負責對請求進行真正的處理工作。
2. DispatcherServlet 查詢一個或多個
HandleMapping,找到處理請求的Controller。
3. DispatchServlet請求提交到目標 Controller。
4. Controller 進行業務邏輯處理後,會返回一個ModelAndView。
5. Dispatcher 查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象。
6. 視圖對象負責渲染返回給客戶端。