java開發者必讀:spring spring spring容器開發框架、工廠模式、控制反轉、分析方法

常見開發框架

一、Spring

Spring是一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器框架。

A。控制反轉(IOC)是什麼呢?

IOC:控制反轉也叫依賴注入。利用了工廠模式將物件交給容器管理,你只需要在spring配置檔案總配置相應的bean,以及設定相關的屬性,讓spring容器來生成類的例項物件以及管理物件。在spring容器啟動的時候,spring會把你在配置檔案中配置的bean都初始化好,然後在你需要呼叫的時候,就把它已經初始化好的那些bean分配給你需要呼叫這些bean的類(假設這個類名是A),分配的方法就是呼叫A的setter方法來注入,而不需要你在A裡面new這些bean了。

[注意]:面試的時候,如果有條件,畫圖,這樣更加顯得你懂了

B。面向切面(AOP)又是什麼呢?

java開發者必讀:spring spring spring容器開發框架、工廠模式、控制反轉、分析方法

首先,需要說明的一點,AOP只是Spring的特性,它就像OOP一樣是一種程式設計思想,並不是某一種技術,AOP可以說是對OOP的補充和完善。OOP引入封裝、繼承和多型性等概念來建立一種物件層次結構,用以模擬公共行為的一個集合。當我們需要為分散的物件引入公共行為的時候,OOP則顯得無能為力。也就是說,OOP允許你定義從上到下的關係,但並不適合定義從左到右的關係。例如日誌功能。

日誌程式碼往往水平地散佈在所有物件層次中,而與它所散佈到的物件的核心功能毫無關係。在OOP設計中,它導致了大量程式碼的重複,而不利於各個模組的重用。將程式中的交叉業務邏輯(比如安全,日誌,事務等),封裝成一個切面,然後注入到目標物件(具體業務邏輯)中去。

實現AOP的技術,主要分為兩大類:一是採用動態代理技術,利用擷取訊息的方式,對該訊息進行裝飾,以取代原有物件行為的執行;二是採用靜態織入的方式,引入特定的語法建立“方面”,從而使得編譯器可以在編譯期間織入有關“方面”的程式碼。

簡單點解釋,比方說你想在你的biz層所有類中都加上一個列印‘你好,AOP’的功能這你經可以用aop思想來做,你先寫個類寫個方法,方法經實現列印‘你好,AOP’讓後你Ioc這個類 ref=“biz。*”讓每個類都注入。

java開發者必讀:spring spring spring容器開發框架、工廠模式、控制反轉、分析方法

二、Spring MVC

Spring MVC屬於Spring Framework的後續產品,已經融合在Spring Web Flow裡面,它原生支援的Spring特性,讓開發變得非常簡單規範。Spring MVC 分離了控制器、模型物件、分派器以及處理程式物件的角色,這種分離讓它們更容易進行定製。

三、MyBatis

MyBatis使用簡單的XML或註解用於配置和原始對映,將介面和Java的POJOs(Plain Old Java Objects,普通的 Java物件)對映成資料庫中的記錄。可以這麼理解,MyBatis是一個用來幫你管理資料增刪改查的框架。

java開發者必讀:spring spring spring容器開發框架、工廠模式、控制反轉、分析方法

四、SSH集合框架

SSH是 struts+spring+hibernate的一個整合框架,是目前比較流行的一種Web應用程式開源框架。

整合SSH框架的系統從職責上分為四層:表示層、業務邏輯層、資料持久層和域模組層。

使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支援;Spring做管理,管理struts和hibernate。

在表示層中,首先透過JSP頁面實現互動介面,負責接收請求(Request)和傳送響應(Response);Struts根據配置檔案(struts-config。xml)將ActionServlet接收到的Request委派給相應的Action處理

在業務層中,管理服務元件的Spring IoC容器負責向Action提供業務模型(Model)元件和該元件的協作物件資料處理(DAO)元件完成業務邏輯,並提供事務處理、緩衝池等容器元件以提升系統性能和保證資料的完整性。

而在持久層中,則依賴於Hibernate的物件化對映和資料庫互動,處理DAO元件請求的資料,並返回處理結果。

三、SSM集合框架

SSM框架,是Spring + Spring MVC + MyBatis的縮寫,這個是繼SSH之後,目前比較主流的Java EE企業級框架,適用於搭建各種大型的企業級應用系統。