Spring是一個(gè)開(kāi)源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的,是企業(yè)中經(jīng)常使用的框架之一,那spring框架的優(yōu)點(diǎn)有哪些?下面來(lái)我們就來(lái)給大家講解一下。
1、非侵入式設(shè)計(jì)
Spring是一種非侵入式(non-invasive)框架,它可以使應(yīng)用程序代碼對(duì)框架的依賴最小化。
2、方便解耦、簡(jiǎn)化開(kāi)發(fā)
Spring就是一個(gè)大工廠,可以將所有對(duì)象的創(chuàng)建和依賴關(guān)系的維護(hù)工作都交給Spring容器的管理,大大的降低了組件之間的耦合性。
3、支持AOP
Spring提供了對(duì)AOP的支持,它允許將一些通用任務(wù),如安全、事物、日志等進(jìn)行集中式處理,從而提高了程序的復(fù)用性。
4、支持聲明式事務(wù)處理
只需要通過(guò)配置就可以完成對(duì)事物的管理,而無(wú)須手動(dòng)編程。
5、方便程序的測(cè)試
Spring提供了對(duì)Junit4的支持,可以通過(guò)注解方便的測(cè)試Spring程序。
6、方便集成各種優(yōu)秀框架
Spring不排斥各種優(yōu)秀的開(kāi)源框架,其內(nèi)部提供了對(duì)各種優(yōu)秀框架(如Struts、Hibernate、MyBatis、Quartz等)的直接支持。
7、降低Jave EE API的使用難度。
spring有哪些模塊?
Spring對(duì)java EE開(kāi)發(fā)中非常難用的一些API(如JDBC、JavaMail等),都提供了封裝,使這些API應(yīng)用難度大大降低。
1.核心模塊
SpringCore模塊是Spring的核心容器,它實(shí)現(xiàn)了IOC模式,提供了Spring框架的基礎(chǔ)功能。此模塊中包含的BeanFactory類是Spring的核心類,負(fù)責(zé)JavaBean的配置與管理。它采用Factory模式實(shí)現(xiàn)了IOC即依賴注入。談到JavaBean,它是一種Java類,它遵從一定的設(shè)計(jì)模式,使它們易于和其他開(kāi)發(fā)工具和組件一起使用。定義JavaBean是一種JAVA語(yǔ)言寫(xiě)成的可重用組件。要編寫(xiě)JavaBean,類必須是具體類和公共類,并且具有無(wú)參數(shù)的構(gòu)造器。
2.Context模塊
SpringContext模塊繼承BeanFactory(或者說(shuō)Spring核心)類,并且添加了事件處理、國(guó)際化、資源裝載、透明裝載、以及數(shù)據(jù)校驗(yàn)等功能。它還提供了框架式的Bean的訪問(wèn)方式和很多企業(yè)級(jí)的功能,如JNDI訪問(wèn)、支持EJB、遠(yuǎn)程調(diào)用、集成模板框架、Email和定時(shí)任務(wù)調(diào)度等。
3.AOP模塊
Spring集成了所有AOP功能。通過(guò)事務(wù)管理可以使任意Spring管理的對(duì)象AOP化。Spring提供了用標(biāo)準(zhǔn)Java語(yǔ)言編寫(xiě)的AOP框架,它的大部分內(nèi)容都是基于AOP聯(lián)盟的API開(kāi)發(fā)的。它使應(yīng)用程序拋開(kāi)EJB的復(fù)雜性,但擁有傳統(tǒng)EJB的關(guān)鍵功能。
4.DAO模塊
DAO是DataAccessObject的縮寫(xiě),DAO模式思想是將業(yè)務(wù)邏輯代碼與數(shù)據(jù)庫(kù)交互代碼分離,降低兩者耦合。通過(guò)DAO模式可以使結(jié)構(gòu)變得更為清晰,代碼更為簡(jiǎn)潔。DAO模塊提供了JDBC的抽象層,簡(jiǎn)化了數(shù)據(jù)庫(kù)廠商的異常錯(cuò)誤(不再?gòu)腟QLException繼承大批代碼),大幅度減少代碼的編寫(xiě),并且提供了對(duì)聲明式事務(wù)和編程式事務(wù)的支持。
5.ORM映射模塊
SpringORM模塊提供了對(duì)現(xiàn)有ORM框架的支持,各種流行的ORM框架已經(jīng)做得非常成熟,并且擁有大規(guī)模的市場(chǎng),Spring沒(méi)有必要開(kāi)發(fā)新的ORM工具,它對(duì)Hibernate提供了完美的整合功能,同時(shí)也支持其他ORM工具。注意這里Spring是提供各類的接口(support),目前比較流行的下層數(shù)據(jù)庫(kù)封閉映射框架,如ibatis,Hibernate等。
6.Web模塊
此模塊建立在SpringContext基礎(chǔ)之上,它提供了Servlet監(jiān)聽(tīng)器的Context和Web應(yīng)用的上下文。對(duì)現(xiàn)有的Web框架,如JSF、Tapestry、Structs等,提供了集成。Structs是建立在MVC這種公認(rèn)的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一個(gè)好的控制器和一套定制的標(biāo)簽庫(kù)上,也就是說(shuō)它的著力點(diǎn)在C和V上,因此,它天生就有MVC所帶來(lái)的一系列優(yōu)點(diǎn),如:結(jié)構(gòu)層次分明,高可重用性,增加了程序的健壯性和可伸縮性,便于開(kāi)發(fā)與設(shè)計(jì)分工,提供集中統(tǒng)一的權(quán)限控制、校驗(yàn)、國(guó)際化、日志等等。
7.MVC模塊
pringWebMVC模塊建立在Spring核心功能之上,這使它能擁有Spring框架的所有特性,能夠適應(yīng)多種多視圖、模板技術(shù)、國(guó)際化和驗(yàn)證服務(wù),實(shí)現(xiàn)控制邏輯和業(yè)務(wù)邏輯的清晰分離。說(shuō)說(shuō)MVC在JSP的作用,這里引入了“控制器”這個(gè)概念,控制器一般由Servlet來(lái)?yè)?dān)任,客戶端的請(qǐng)求不再直接送給一個(gè)處理業(yè)務(wù)邏輯的JSP頁(yè)面,而是送給這個(gè)控制器,再由控制器根據(jù)具體的請(qǐng)求調(diào)用不同的事務(wù)邏輯,并將處理結(jié)果返回到合適的頁(yè)面。
因此,這個(gè)Servlet控制器為應(yīng)用程序提供了一個(gè)進(jìn)行前-后端處理的中樞。一方面為輸入數(shù)據(jù)的驗(yàn)證、身份認(rèn)證、日志及實(shí)現(xiàn)國(guó)際化編程提供了一個(gè)合適的切入點(diǎn);另一方面也提供了將業(yè)務(wù)邏輯從JSP文件剝離的可能。業(yè)務(wù)邏輯從JSP頁(yè)面分離后,JSP文件蛻變成一個(gè)單純完成顯示任務(wù)的東西,這就是常說(shuō)的View。而獨(dú)立出來(lái)的事務(wù)邏輯變成人們常說(shuō)的Model,再加上控制器Control本身,就構(gòu)成了MVC模式。實(shí)踐證明,MVC模式為大型程序的開(kāi)發(fā)及維護(hù)提供了巨大的便利。
Spring一共有以上這7大模塊,每一個(gè)模塊都有它自己獨(dú)特的功能,我們?cè)谑褂胘ava的時(shí)候,一定要熟悉這些模塊的功能,目的就是為了更好的使用Spring!最后大家如果想要了解更多java架構(gòu)師知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“pring框架的優(yōu)點(diǎn)有哪些?pring有哪些模塊?”已幫助 74 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579