課程
/后端開(kāi)發(fā)
/Java
/Spring入門篇
請(qǐng)回答具體點(diǎn),謝謝!Spring框架是?與別的框架的區(qū)別在哪里?
2017-05-03
源自:Spring入門篇 1-2
正在回答
它(ioc)會(huì)幫你去維護(hù)對(duì)象的創(chuàng)建,你只要用就可以了。
簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。◆輕量——從大小與開(kāi)銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開(kāi)銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類。◆控制反轉(zhuǎn)——Spring通過(guò)一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過(guò)被動(dòng)的方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反——不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。◆面向切面——Spring提供了面向切面編程的豐富支持,允許通過(guò)分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開(kāi)發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。◆容器——Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。◆框架——Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開(kāi)發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。Spring的兩大核心AOP與IOC,可以單獨(dú)用于任何應(yīng)用,包括與Struts等MVC框架與Hibernate等ORM框架的集成,目前很多公司所謂的輕量級(jí)開(kāi)發(fā)就是用 Spring + Struts(2)+Hibernate。 ? ? ?Spring MVC就是一個(gè)MVC框架,個(gè)人覺(jué)得Spring MVC annotation式的開(kāi)發(fā)比Struts2方便,可以直接代替上面的Struts(當(dāng)然Struts的做為一個(gè)非常成熟的MVC,功能上感覺(jué)還是比Spring強(qiáng)一點(diǎn),不過(guò)Spring MVC已經(jīng)足夠用了)。當(dāng)然spring mvc的執(zhí)行效率比struts高,是因?yàn)閟truts的值棧影響效率spring mvc類似于struts的一個(gè)MVC開(kāi)框架,其實(shí)都是屬于spring,spring mvc需要有spring的架包作為支撐才能跑起來(lái)如果有人問(wèn)你什么事控制反轉(zhuǎn)(spring的核心面試常問(wèn)道):你就回答,本來(lái)程序是由我們new 出來(lái)的嘛,后來(lái)交給程序控制進(jìn)行new出來(lái)了嘛,這就是控制反轉(zhuǎn)嘛,
舉報(bào)
為您帶來(lái)IOC和AOP的基本概念及用法,為后續(xù)高級(jí)課程學(xué)習(xí)打下基礎(chǔ)
1 回答SpringMVC和Spring在對(duì)@service的處理上有什么不不同
2 回答用@Bean的方式有什么好處呢?
1 回答這是什么原因,求指教.
2 回答這種強(qiáng)制指定一個(gè)父類具體有啥好處呀
1 回答spring 的bean 是什么?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2017-05-04
它(ioc)會(huì)幫你去維護(hù)對(duì)象的創(chuàng)建,你只要用就可以了。
簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。
◆輕量——從大小與開(kāi)銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開(kāi)銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類。
◆控制反轉(zhuǎn)——Spring通過(guò)一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過(guò)被動(dòng)的方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反——不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。
◆面向切面——Spring提供了面向切面編程的豐富支持,允許通過(guò)分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開(kāi)發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。
◆容器——Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。
◆框架——Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開(kāi)發(fā)留給了你。
所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。
Spring的兩大核心AOP與IOC,可以單獨(dú)用于任何應(yīng)用,包括與Struts等MVC框架與Hibernate等ORM框架的集成,目前很多公司所謂的輕量級(jí)開(kāi)發(fā)就是用 Spring + Struts(2)+Hibernate。
? ? ?Spring MVC就是一個(gè)MVC框架,個(gè)人覺(jué)得Spring MVC annotation式的開(kāi)發(fā)比Struts2方便,可以直接代替上面的Struts(當(dāng)然Struts的做為一個(gè)非常成熟的MVC,功能上感覺(jué)還是比Spring強(qiáng)一點(diǎn),不過(guò)Spring MVC已經(jīng)足夠用了)。當(dāng)然spring mvc的執(zhí)行效率比struts高,是因?yàn)閟truts的值棧影響效率
spring mvc類似于struts的一個(gè)MVC開(kāi)框架,其實(shí)都是屬于spring,spring mvc需要有spring的架包作為支撐才能跑起來(lái)
如果有人問(wèn)你什么事控制反轉(zhuǎn)(spring的核心面試常問(wèn)道):你就回答,本來(lái)程序是由我們new 出來(lái)的嘛,后來(lái)交給程序控制進(jìn)行new出來(lái)了嘛,這就是控制反轉(zhuǎn)嘛,