本系列用來記錄經常使用java框架的基本概念、區別及聯繫,也記錄了在使用過程當中,遇到的一些問題的解決方法,方便本身查看,也方便你們查閱。html
欲速則不達,欲達則欲速!前端
1、SSHjava
一、基本概念程序員
SSH框架是JAVA EE中三種框架所集成,分別是Struts,Spring,Hibernate框架所組成,是當前比較流行的java web開源框架。web
集成SSH框架的系統從職責上分爲(Struts2--控制;spring--解耦;hibernate--操做數據庫),以幫助開發人員在短時間內搭建結構清晰、可服用好、維護方便的web應用程序。使用Struts做爲系統的總體基礎框架,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用hibernate框架對持久層提供支持,spring作管理,管理Struts和hibernate。spring
二、Struts2數據庫
(1)基本概念編程
Struts2是一個基於MVC設計模式的web應用框架,至關於一個servlet,在MVC設計模式中,Struts2做爲控制器(controller)來創建模型與視圖的數據交互。Struts2在Struts1融合webwork。struts2以webwork爲核心,採用攔截器的機制來處理用戶的請求,這樣的設計使得業務邏輯控制器可以與servletAPI徹底脫離。設計模式
(2)Struts2框架的運行結構緩存
解析:客戶端發送請求(HttpServletRequest)到服務器,服務器接收到請求就先進入web.xml配置文件看看有沒有配置過濾器,發現有有Struts2的過濾器,而後找到struts.xml配置文件,struts.xml配置文件裏定義一個action,而後就去找到action類,此類繼承ActionSupport接口,而且實現了execute()方法,返回一個字符串「success」給struts.xml配置文件,struts.xml配置文件的action會默認調用action類的execute()方法,result接收到返回的字符串,result就會調用你指定的jsp頁面將結果呈現,最後響應給客戶端。
(3)Struts2的優點
(4)Struts2的缺點:
二、Spring
(1)基本概念
spring是一個開源開發框架,是一個輕量級控制反轉(IoC)和麪向切面(AOP)的容器框架。
spring主要用來開發java應用,構建J2EE平臺的web應用。其核心就是提供一種新的機制管理業務對象及其依賴關係。
(2)spring的流程圖
解析:上面是在Struts結構圖的基礎上加入了spring流程圖,在web.xml配置文件中加入了spring的監聽器,在struts.xml配置文件中添加
「<constant name="struts.objectFactory" value="spring" />」
是告知Struts2運行時使用spring來管理對象,spring在其中主要作的就是注入實例,全部須要類的實例都由spring管理。
(3)spring的優勢
(4)spring的缺點
三、hibernate
(1)基本概念
Hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了很是輕量級的對象封裝,它將POJO與數據庫表創建映射關係,是一個全自動的orm框架,hibernate能夠自動生成SQL語句,自動執行,使得Java程序員能夠爲所欲爲的使用對象編程思惟來操縱數據庫。 Hibernate能夠應用在任何使用JDBC的場合,既能夠在Java的客戶端程序使用,也能夠在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate能夠在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。
(2)hibernate的核心構成和執行流程圖
(3)hibernate的優勢
一級緩存:是session級別的緩存,一個session作了一個查詢操做,它會把這個操做的結果放到一級緩存中,若是短期內這個session又作了同一個操做,那麼hibernate直接從一級緩存中拿出,而不會去連數據庫取數據。
二級緩存:是sessionFactory級別的緩存,就是查詢的時候會把結果緩存到二級緩存中,若是同一個sessionFactory建立的某個session執行了相同的操做,hibernate就會從二級緩存中拿出結果,而不會再去鏈接數據庫。
(4)hibernate的缺點
手動實現教程源碼:
連接: https://pan.baidu.com/s/1BK0V1wxA-GQrWco10WEzeg 提取碼: 2e3e
2、SSM
SSM架構,是三層結合所成的框架,分別是Spring、SpringMVC、MyBatis所組成。Spring依賴注入來管理各層,面向切面編程管理事務,日誌和權限。SpringMVC表明了model、view、controller接收外部請求,進行開發和處理。mybatis是基於jdbc的框架,主要用來操做數據庫,而且將業務實體和數據表聯繫起來。
一、spring
詳細介紹見SSH中spring。
二、SpringMVC
(1)基本概念
屬於spring框架的一部分,用來簡化MVC架構的web應用程序開發。
(2)SpringMVC的優勢
(3)SpringMVC的缺點
三、mybatis
(1)基本概念
mybatis是一個簡化和實現了java數據持久層的開源框架,它抽象了大量的JDBC冗餘代碼,並提供了一個簡單易用的API和數據庫交互。
(2)mybatis的優勢
(3)mybatis的缺點
3、Springboot
一、springboot基本概念
springboot是一個全新的框架,簡化Spring的初始搭建和開發過程,使用了特定的方式來進行配置,讓開發人員再也不須要定義樣板化的配置。此框架不須要配置xml,依賴於maven這樣的構建系統。
二、Springboot的優勢
(1)減小了大量的開發時間並提升了生產力
(2)避免了編寫大量的樣板代碼,註釋和XML配置
(3)解決了spring的弊端
(4)代碼少了、配置文件少了、不須要對第三方框架煩惱了、項目精簡了,對整個團隊的開發和維護來講,更大的節約了成本。
三、springboot的缺點
(1)修復bug較慢,報錯時難以定位。
(2)集成度較高,不易於瞭解底層。
四、springboot總結
簡單、快速、方便的搭建項目;對主流開發框架的無配置集成;極大提升了開發、部署效率。
五、springboot和spring的區別
(1)springboot能夠創建獨立的spring應用程序。
(2)內嵌瞭如tomcat,Jetty和Undertow這樣的容器,也就是說能夠直接跑起來,用不着再作部署工做。
(3)無需再像spring那樣寫一堆繁瑣的XML配置文件
(4)能夠自動配置spring
(5)提供的POM能夠簡化maven的配置
六、springboot和springMVC的區別
(1)SpringMVC是基於spring的一個MVC框架。
(2)springboot的基於spring的條件註冊的一套快速開發整合包。
推薦博文
【原創】純乾貨,Spring-data-jpa詳解,全方位介紹。