1.spring架構(gòu)圖
Spring是一個開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢之一就是其分層架構(gòu),分層架構(gòu)允許您選擇使用哪一個組件,同時為J2EE應(yīng)用程序開發(fā)提供集成的框架。Spring框架的功能可以用在任何J2EE服務(wù)器中,大多數(shù)功能也適用于不受管理的環(huán)境。Spring的核心要點是:支持不綁定到特定J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問對象。這樣的對象可以在不同J2EE環(huán)境 (Web或EJB)、獨立應(yīng)用程序、測試環(huán)境之間重用。
組成Spring框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。每個模塊的功能如下:
-
核心容器:核心容器提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,它是工廠模式的實現(xiàn)。BeanFactory使用控制反轉(zhuǎn) (IOC) 模式將應(yīng)用程序的配置和依賴性規(guī)范與實際的應(yīng)用程序代碼分開。
-
Spring上下文:Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業(yè)服務(wù),例如JNDI、EJB、電子郵件、國際化、校驗和調(diào)度功能。
-
Spring AOP: 通過配置管理特性,Spring AOP模塊直接將面向方面的編程功能集成到了Spring框架中。所以,可以很容易地使Spring框架管理的任何對象支持AOP。Spring AOP模塊為基于Spring的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)。通過使用Spring AOP,不用依賴EJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。
-
Spring DAO:JDBC DAO抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)庫供應(yīng)商拋出的錯誤消息。異常層次結(jié)構(gòu)簡化了錯誤處理,并且極大地降低了需要編寫???? 的異常代碼數(shù)量(例如打開和關(guān)閉連接)。Spring DAO的面向JDBC的異常遵從通用的DAO異常層次結(jié)構(gòu)。
-
Spring ORM:Spring框架插入了若干個ORM框架,從而提供了ORM的對象關(guān)系工具,其中包括JDO、Hibernate和iBatis?SQL?Map。所有這些都遵從Spring的通用事務(wù)和DAO異常層次結(jié)構(gòu)。
2.ibatis架構(gòu)圖
ibatis是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data?Access Objects(DAO),同時還提供一個利用這個框架開發(fā)的JPetStore實例。
OGX%E@mx0
IBATIS:最大的優(yōu)點是可以有效的控制sql發(fā)送的數(shù)目,提高數(shù)據(jù)層的執(zhí)行效率!它需要程序員自己去寫sql語句,不象hibernate那樣是完全面向?qū)ο蟮?,自動化的,ibatis是半自動化的,通過表和對象的映射以及手工書寫的sql語句,能夠?qū)崿F(xiàn)比hibernate等更高的查詢效率。
Ibatis只是封裝了數(shù)據(jù)訪問層,替我們做了部分的對象關(guān)系映射。但代價是必須要寫xml配置文件,相對于Hibernate還要寫很多sql。Hibernate通過工具直接從數(shù)據(jù)庫模式生成實體類和基本的配置文件,而且大部分情況下不需要我們寫sql,會較大的提升開發(fā)效率。但這些也有很多的局限性,尤其是對環(huán)境的要求較高(數(shù)據(jù)庫設(shè)計,對象設(shè)計,團隊的協(xié)作等)。 個人感覺Ibatis對項目比較有意義的地方在于它小巧靈活,可擴展,封裝了數(shù)據(jù)訪問層(事務(wù),緩存,異常,日志),并提供了DAO框架支持。
利用Ibatis我們可以做到代碼和sql的分離,只要sql能夠解決的問題,Ibatis就能幫我們較容易的解決,同時也使我們的項目對某一框架的依賴性變小(因為Ibatis是非侵入性的)。這將極大的降低項目風(fēng)險,減少解決復(fù)雜問題的時間,使項目的維護變得簡單。
Ibatis對于應(yīng)用的修改,調(diào)試,擴充和維護將會變得容易自然。修改時,我們主要修改的是代表模型的實體對象,xml配置文件中的sql,和/或配置文件的ResultMap(很多時候是不需要的)。同時,sql和代碼分離,我們不用在代碼的StringBuffer的append方法之間尋找需要修改的sql。配置文件中的sql便利了我們的調(diào)試和對sql的評審及以后的sql重用。
3.structs1架構(gòu)圖
Struts是Apache基金會Jakarta項目組的一個Open Source項目,它采用MVC模式,能夠很好地幫助Java開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts也是面向?qū)ο笤O(shè)計,將MVC模式"分離顯示邏輯和業(yè)務(wù)邏輯"的能力發(fā)揮得淋漓盡致。Structs框架的核心是一個彈性的控制層,基于如Java?Servlets,JavaBeans,ResourceBundles與XML等標準技術(shù),以及Jakarta Commons的一些類庫。Struts有一組相互協(xié)作的類(組件)、Serlvet以及jsp?tag lib組成?;趕truts構(gòu)架的web應(yīng)用程序基本上符合JSP Model2的設(shè)計標準,可以說是一個傳統(tǒng)MVC設(shè)計模式的一種變化類型。
Struts有其自己的控制器(Controller),同時整合了其他的一些技術(shù)去實現(xiàn)模型層(Model)和視圖層(View)。在模型層,Struts可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,如JDBC / EJB,以及其它第三方類庫,如Hibernate / iBATIS,或者Object Relational Bridge(對象關(guān)系橋)。在視圖層,Struts能夠與JSP,包括JSTL與JSF,以及Velocity模板,XSLT與其它表示層技術(shù)。
Struts為每個專業(yè)的Web應(yīng)用程序做背后的支撐,幫助為你的應(yīng)用創(chuàng)建一個擴展的開發(fā)環(huán)境。
??Client browser(客戶瀏覽器)
來自客戶瀏覽器的每個HTTP請求創(chuàng)建一個事件。Web容器將用一個HTTP響應(yīng)作出響應(yīng)。
??Controller(控制器)
控制器接收來自瀏覽器的請求,并決定將這個請求發(fā)往何處。就Struts而言,控制器是以servlet實現(xiàn)的一個命令設(shè)計模式。struts-config.xml文件配置控制器。
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。
深知大多數(shù)Java工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機構(gòu)動則幾千的學(xué)費,著實壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Java開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負擔(dān)。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進階課程,基本涵蓋了95%以上Java開發(fā)知識點,真正體系化!
由于文件比較大,這里只是將部分目錄大綱截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且后續(xù)會持續(xù)更新
如果你覺得這些內(nèi)容對你有幫助,可以添加V獲?。簐ip1024b (備注Java)
最后
由于篇幅限制,小編在此截出幾張知識講解的圖解
[外鏈圖片轉(zhuǎn)存中…(img-lYVgTQhk-1711751455136)]
[外鏈圖片轉(zhuǎn)存中…(img-ufL5byBP-1711751455137)]文章來源:http://www.zghlxwxcb.cn/news/detail-861905.html
[外鏈圖片轉(zhuǎn)存中…(img-ToZQYPby-1711751455137)]文章來源地址http://www.zghlxwxcb.cn/news/detail-861905.html
到了這里,關(guān)于JAVA各種系統(tǒng)架構(gòu)圖及其簡介,終于有人把Java程序員必學(xué)知識點全整理出來了的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!