SSM框架,是Spring + Spring MVC + MyBatis的縮寫,這個是繼SSH之后,目前比較主流的Java EE企業級框架,適用於搭建各種大型的企業級應用系統。
1.Spring簡介
Spring是一個開源框架,Spring是於2003年興起的一個輕量級的Java開發框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限於服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。 簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。
①. 控制反轉(IOC)是什么呢?
IOC:控制反轉也叫依賴注入。利用了工廠模式將對象交給容器管理,你只需要在spring配置文件總配置相應的bean,以及設置相關的屬性,讓spring容器來生成類的實例對象以及管理對象。在spring容器啟動的時候,spring會把你在配置文件中配置的bean都初始化好,然后在你需要調用的時候,就把它已經初始化好的那些bean分配給你需要調用這些bean的類(假設這個類名是A),分配的方法就是調用A的setter方法來注入,而不需要你在A里面new這些bean了。
[注意]:面試的時候,如果有條件,畫圖,這樣更加顯得你懂了 。
②. 面向切面(AOP)又是什么呢?
首先,需要說明的一點,AOP只是Spring的特性,它就像OOP一樣是一種編程思想,並不是某一種技術,AOP可以說是對OOP的補充和完善。OOP引入封裝、繼承和多態性等概念來建立一種對象層次結構,用以模擬公共行為的一個集合。當我們需要為分散的對象引入公共行為的時候,OOP則顯得無能為力。也就是說,OOP允許你定義從上到下的關系,但並不適合定義從左到右的關系。例如日志功能。日志代碼往往水平地散布在所有對象層次中,而與它所散布到的對象的核心功能毫無關系。在OOP設計中,它導致了大量代碼的重復,而不利於各個模塊的重用。將程序中的交叉業務邏輯(比如安全,日志,事務等),封裝成一個切面,然后注入到目標對象(具體業務邏輯)中去。 實現AOP的技術,主要分為兩大類:一是采用動態代理技術,利用截取消息的方式,對該消息進行裝飾,以取代原有對象行為的執行;二是采用靜態織入的方式,引入特定的語法創建“方面”,從而使得編譯器可以在編譯期間織入有關“方面”的代碼。
[簡單點解釋],比方說你想在你的biz層所有類中都加上一個打印‘你好,AOP’的功能這你經可以用aop思想來做,你先寫個類寫個方法,方法經實現打印‘你好,AOP’讓后你Ioc這個類 ref=“biz.*”讓每個類都注入。
2.Spring MVC簡介
Spring MVC屬於Spring Framework的后續產品,已經融合在Spring Web Flow里面,它原生支持的Spring特性,讓開發變得非常簡單規范。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。
3.MyBatis簡介
MyBatis本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,並且改名為MyBatis 。MyBatis是一個基於Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或注解用於配置和原始映射,將接口和Java的POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。可以這么理解,MyBatis是一個用來幫你管理數據增刪改查的框架。