欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

spring:

1)開源框架

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

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

struts跟spring的區(qū)別?

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

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

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

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

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

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

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

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

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

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

我在這里只是簡(jiǎn)單的說了點(diǎn)而已,其實(shí)有很多東西都值得我們?nèi)パ芯浚皇且粌删湓捑涂梢愿爬ǖ摹?/p>

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

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

相關(guān)文章

  • Spring?MVC請(qǐng)求轉(zhuǎn)發(fā)與請(qǐng)求重定向的示例詳解

    Spring?MVC請(qǐng)求轉(zhuǎn)發(fā)與請(qǐng)求重定向的示例詳解

    轉(zhuǎn)發(fā)指服務(wù)器接收請(qǐng)求后,從一個(gè)資源跳轉(zhuǎn)到另一個(gè)資源中,請(qǐng)求轉(zhuǎn)發(fā)是一次請(qǐng)求,不會(huì)改變?yōu)g覽器的請(qǐng)求地址,這篇文章主要介紹了Spring?MVC請(qǐng)求轉(zhuǎn)發(fā)與請(qǐng)求重定向的相關(guān)知識(shí),需要的朋友可以參考下
    2023-09-09
  • Java?GUI編程菜單組件實(shí)例詳解

    Java?GUI編程菜單組件實(shí)例詳解

    在實(shí)際開發(fā)中,除了主界面,還有一類比較重要的內(nèi)容就是菜單相關(guān)組件,可以通過菜單相關(guān)組件很方便的使用特定的功能,今天通過本文給大家介紹下Java?GUI編程菜單組件實(shí)例詳解,感興趣的朋友一起看看吧
    2022-04-04
  • Java爬蟲實(shí)現(xiàn)爬取京東上的手機(jī)搜索頁面 HttpCliient+Jsoup

    Java爬蟲實(shí)現(xiàn)爬取京東上的手機(jī)搜索頁面 HttpCliient+Jsoup

    下面小編就為大家分享一篇Java爬蟲實(shí)現(xiàn)爬取京東上的手機(jī)搜索頁面 HttpCliient+Jsoup,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • Java并發(fā)編程之關(guān)鍵字volatile知識(shí)總結(jié)

    Java并發(fā)編程之關(guān)鍵字volatile知識(shí)總結(jié)

    今天帶大家學(xué)習(xí)java的相關(guān)知識(shí),文章圍繞著Java關(guān)鍵字volatile展開,文中有非常詳細(xì)的知識(shí)總結(jié),需要的朋友可以參考下
    2021-06-06
  • springboot 使用logback啟動(dòng)報(bào)警報(bào)錯(cuò)的解決

    springboot 使用logback啟動(dòng)報(bào)警報(bào)錯(cuò)的解決

    這篇文章主要介紹了springboot 使用logback啟動(dòng)報(bào)警報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java語言基礎(chǔ)之標(biāo)識(shí)符和命名規(guī)則詳解

    java語言基礎(chǔ)之標(biāo)識(shí)符和命名規(guī)則詳解

    這篇文章主要給大家介紹了關(guān)于java語言基礎(chǔ)之標(biāo)識(shí)符和命名規(guī)則的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java8中的LocalDateTime你會(huì)使用了嗎

    Java8中的LocalDateTime你會(huì)使用了嗎

    LocalDateTime?是?Java?8?中日期時(shí)間?API?提供的一個(gè)類,在日期和時(shí)間的表示上提供了更加豐富和靈活的支持,本文就來講講LocalDateTime的一些具體使用方法吧
    2023-05-05
  • Java字符串常量池和intern方法解析

    Java字符串常量池和intern方法解析

    本文主要介紹了Java字符串常量池和intern方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Spring Cloud實(shí)現(xiàn)提供API給客戶端的方法詳解

    Spring Cloud實(shí)現(xiàn)提供API給客戶端的方法詳解

    這篇文章主要給大家介紹了關(guān)于Spring Cloud實(shí)現(xiàn)提供API給客戶端的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • Java多線程下載文件實(shí)例詳解

    Java多線程下載文件實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了Java多線程下載文件的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評(píng)論