最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sprng和struts有什么區(qū)別?

 更新時間:2015年06月15日 10:31:29   投稿:hebedich  
Spring和Struts都是近年來比較流行的框架,Struts主要用于表示層,Spring用于業(yè)務(wù)層,以及Hiberate主要用于持久層,

spring:

1)開源框架

2)IoC(控制反轉(zhuǎn)),將類的創(chuàng)建和依賴關(guān)系寫在配置文件里,由配置文件注入,實現(xiàn)了松耦合

3)AOP 將安全,事務(wù)等于程序邏輯相對獨(dú)立的功能抽取出來,利用spring的配置文件將這些功能插進(jìn)去,實現(xiàn)了按照方面編程,提高了復(fù)用性

struts跟spring的區(qū)別?

structs:和ww2等一樣,都是典型的mvc結(jié)構(gòu)框架),structs偏重于表現(xiàn)層,它自己起一個控制器的作用即controller,它可以良好的把表現(xiàn)層與業(yè)務(wù)層分離開來。 spring:說白了就是一個大雜燴,提供了目前各種流行框架的集成,經(jīng)典的有對hibernate的集成,此外,如mail,axis...各種都有。另外,它比較經(jīng)典的就是IOC與AOP的功能。此外,它還提供了Spring MVC,它基于webflow。Spring是一系列web框架技術(shù)的綜合,其特點(diǎn)是輕量級,非侵入性、解耦設(shè)計等。一般用的最多的是它的IoC/DI, 即反轉(zhuǎn)控制/依賴注入,例如用xml聲明Bean,運(yùn)行時注入。

由于我不是很懂,所以理解不好。

簡單的說下 struts spring hibernate 這3個主流的開源,業(yè)界事實上的標(biāo)準(zhǔn)框架吧!

在早期還沒有struts的時候,我們前后臺傳遞數(shù)據(jù),都是用的作用域?qū)ο?page,request,session,application),包含大量的getParameter 和 getAttribute,以及數(shù)據(jù)類型的轉(zhuǎn)換。浪費(fèi)了很多的時間。而且有很多的開發(fā)都未使用mvc的模式,加大了后期的維護(hù)以及二次開發(fā)的難度。

在這個情況下,struts應(yīng)運(yùn)而生,他提供了 三大組件來供我們運(yùn)用,前后臺數(shù)據(jù)庫傳遞使用actionform來傳遞,直接封裝成對象。操作方便。而且,作為mvc的典型實現(xiàn),視圖和控制層的分離,代碼更清晰,維護(hù)更方便。

早期做jdbc操作的時候,我相信大家都有這樣的體會,自己編寫數(shù)據(jù)庫操作類,不斷的傳遞數(shù)據(jù)庫操作語句,不斷的executeUpdate和executeQuery 然后又是循環(huán)讀取結(jié)果集,然后關(guān)閉鏈接。而且數(shù)據(jù)庫是關(guān)系型數(shù)據(jù)庫,而java開發(fā)的時候,是對象模型的,關(guān)系-對象的轉(zhuǎn)換,也讓人很頭疼。在企業(yè)開發(fā)中,最頭疼的就是更換數(shù)據(jù)庫,如果前期需求分析不到位的話,那就意味著項目就要重新來過的尷尬。

hibernate框架,提供了內(nèi)置的方法,簡單的save merge delete find 方法,就可以實現(xiàn)以前需要很多編碼才能實現(xiàn)的功能,而且將值自動封裝到j(luò)avabean中,使用方便。而且我們也不必去關(guān)心,什么時候要開啟數(shù)據(jù)庫鏈接,什么時候去關(guān)閉數(shù)據(jù)庫鏈接。而且hibernate也提供了數(shù)據(jù)庫切換的功能,簡單的配置即可,非常方便。也不必去編寫繁冗的sql語句了。

至于spring,真的可以說是java開發(fā)人員的春天。Rod Johson在2002年編著的《Expert one to one J2EE design and development》一書中,對Java EE正統(tǒng)框架臃腫、低效、脫離現(xiàn)實的種種現(xiàn)狀提出了質(zhì)疑,在該書中,作者根據(jù)自己多年豐富的實踐經(jīng)驗,對EJB的各種笨重臃腫的結(jié)構(gòu)進(jìn)行了逐一的分析和否定,并分別以簡潔實用的方式替換之?!疚业膉ava老師當(dāng)時和我上過:那時候,業(yè)界一直大喊:“不用ejb就是j2ee開發(fā)。而且ejb的開發(fā)繁冗不是一般人能理解的(注:只是引用,我未研究過ejb,所以不敢妄言?。薄?/p>

簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。ioc也可以理解為依賴注入。就是講程序之間的依賴性交給spring來管理,降低了程序之間的耦合度。在程序中,我們只需將某個對象以屬性的方式注入到該對象中即可,無須實例話,實例化的事情交由spring來管理。至于要實現(xiàn)話那個對像,可以在配置文件里配置,當(dāng)然,這些對象必須共同遵循某個規(guī)范(Interface)。aop面向切面編程,spring的聲明式事務(wù)就是通過aop來實現(xiàn)嘚。在hibernate中如果要對方法加事務(wù),我們需要關(guān)心,對誰加,在哪里加,而使用聲明式事務(wù)以后,我們無須關(guān)系這些具體細(xì)節(jié)。一切交給spring來處理。

這三個框架具有的共同的特性就是:他們都是輕量級的,使用很靈活。

我在這里只是簡單的說了點(diǎn)而已,其實有很多東西都值得我們?nèi)パ芯?,而不是一兩句話就可以概括的?/p>

還要說明的就是:spring不是負(fù)責(zé)業(yè)務(wù)層的,而是把系統(tǒng)中散落的“切面”集合在一起,集中管理,從而讓我們程序員能有更多的精力去專注業(yè)務(wù)層的開發(fā),加快軟件的開發(fā)進(jìn)度。

以上所述就是本文的全部內(nèi)容了,有需要的小伙伴可以參考下。

相關(guān)文章

  • Java中的HashSet集合存儲數(shù)據(jù)的結(jié)構(gòu)詳解

    Java中的HashSet集合存儲數(shù)據(jù)的結(jié)構(gòu)詳解

    這篇文章主要介紹了Java中的HashSet集合存儲數(shù)據(jù)的結(jié)構(gòu)詳解,數(shù)組結(jié)構(gòu)他把元素進(jìn)行分組,相同哈希值的元素是一組,鏈表/紅黑樹結(jié)構(gòu)把相同哈希值的元素鏈接到一起,存儲數(shù)據(jù)到集合中,先計算元素的哈希值,需要的朋友可以參考下
    2023-09-09
  • Java實現(xiàn)解壓zip壓縮包的兩種方法(支持多層級)

    Java實現(xiàn)解壓zip壓縮包的兩種方法(支持多層級)

    壓縮文件在生活中經(jīng)常能用到,在Java中提供了壓縮和解壓縮文件的功能,本文主要介紹了Java實現(xiàn)解壓zip壓縮包的兩種方法(支持多層級),感興趣的可以了解一下
    2024-03-03
  • 使用idea搭建spring項目,利用xml文件的形式進(jìn)行配置方式

    使用idea搭建spring項目,利用xml文件的形式進(jìn)行配置方式

    本文介紹了如何使用SpringIOC和SpringDI的思想開發(fā)一個打印機(jī)模擬程序,實現(xiàn)了靈活配置彩色墨盒或灰色墨盒以及打印頁面大小的功能,通過創(chuàng)建接口和實現(xiàn)類,并在配置文件中進(jìn)行依賴注入,實現(xiàn)了控制反轉(zhuǎn)
    2024-11-11
  • Netty學(xué)習(xí)教程之基礎(chǔ)使用篇

    Netty學(xué)習(xí)教程之基礎(chǔ)使用篇

    Netty是由JBOSS提供的一個Java開源框架。Netty提供異步的、事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序框架和工具,用以快速開發(fā)高性能、高可靠性的網(wǎng)絡(luò)服務(wù)器和客戶端程序。下面這篇文章主要給大家介紹了關(guān)于Netty基礎(chǔ)使用的相關(guān)資料,需要的朋友可以參考下。
    2017-05-05
  • 詳細(xì)盤點(diǎn)Java中鎖的分類

    詳細(xì)盤點(diǎn)Java中鎖的分類

    這篇文章主要介紹了詳細(xì)盤點(diǎn)Java中鎖的分類,Java中的鎖是一種多線程編程中的同步機(jī)制,用于控制線程對共享資源的訪問,防止并發(fā)訪問時的數(shù)據(jù)競爭和死鎖問題,需要的朋友可以參考下
    2023-08-08
  • Java?Spring?Dubbo三種SPI機(jī)制的區(qū)別

    Java?Spring?Dubbo三種SPI機(jī)制的區(qū)別

    這篇文章主要介紹了Java?Spring?Dubbo三種SPI機(jī)制的區(qū)別,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-08-08
  • Java網(wǎng)約車項目實戰(zhàn)之實現(xiàn)搶單功能詳解

    Java網(wǎng)約車項目實戰(zhàn)之實現(xiàn)搶單功能詳解

    本文詳細(xì)介紹了如何使用Java實現(xiàn)網(wǎng)約車項目的搶單功能,并提供了一個完整的代碼示例,以便讀者能夠直接運(yùn)行和參考,感興趣的朋友一起看看吧
    2024-12-12
  • GitLab+Jenkins+Maven+Tomcat?實現(xiàn)自動集成、打包、部署

    GitLab+Jenkins+Maven+Tomcat?實現(xiàn)自動集成、打包、部署

    本文主要介紹了GitLab?+?Jenkins?+?Maven?+?Tomcat?實現(xiàn)自動集成、打包、部署,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Java基于UDP協(xié)議實現(xiàn)簡單的聊天室程序

    Java基于UDP協(xié)議實現(xiàn)簡單的聊天室程序

    這篇文章主要為大家詳細(xì)介紹了Java基于UDP協(xié)議實現(xiàn)簡單的聊天室程序的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 詳談Spring是否支持對靜態(tài)方法進(jìn)行Aop增強(qiáng)

    詳談Spring是否支持對靜態(tài)方法進(jìn)行Aop增強(qiáng)

    這篇文章主要介紹了Spring是否支持對靜態(tài)方法進(jìn)行Aop增強(qiáng),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論

马边| 昂仁县| 共和县| 宁波市| 五华县| 营口市| 宝丰县| 读书| 朝阳市| 贵港市| 温泉县| 湖北省| 洞口县| 延津县| 德惠市| 双鸭山市| 江油市| 开化县| 河津市| 揭东县| 肇州县| 阿荣旗| 富民县| 桦南县| 镇巴县| 龙游县| 庆阳市| 凤城市| 屯昌县| 吉木萨尔县| 云阳县| 黑龙江省| 光山县| 叶城县| 岗巴县| 长宁区| 河南省| 湘潭县| 临朐县| 义马市| 鹤山市|