spring 源碼分析及知識點(diǎn)總結(jié):http://www.reibang.com/p/822b6803a6e1
1 Spring是什么?
是一個(gè)個(gè)輕量級的依賴注入和AOP容器框架
使用控制反轉(zhuǎn)的方式,通過依賴注入來創(chuàng)建對象(將創(chuàng)建對象的方式反轉(zhuǎn)了,由Spring創(chuàng)建對象蒜危,依賴注入到調(diào)用者程序中)
面向切面編程:將業(yè)務(wù)邏輯從應(yīng)用服務(wù)(如事務(wù)管理)中分離出來剧包,實(shí)現(xiàn)了高內(nèi)聚開發(fā)核偿,應(yīng)用對象只關(guān)注業(yè)務(wù)邏輯迹缀。
面向切面編程是面向?qū)ο缶幊痰挠辛ρa(bǔ)充瓦糕。面向?qū)ο缶幊淌庆o態(tài)的抽象胁艰,AOP是動態(tài)的抽象款筑,獲得步驟之間的邏輯劃分
Spring的容器智蝠,管理應(yīng)用對象的生命周期和配置。如對象的創(chuàng)建奈梳、銷毀杈湾、回調(diào)等。
參考:Spring的優(yōu)點(diǎn)和缺點(diǎn)
2 spring有什么優(yōu)勢攘须?
1.使用Spring的IOC容器漆撞,將對象之間的依賴關(guān)系交給Spring,降低組件之間的耦合性于宙,讓我們更專注于應(yīng)用邏輯
2.可以提供眾多服務(wù)浮驳,事務(wù)管理,Web Service等捞魁。
3.AOP很好支持了面向切面編程至会。
4.對主流的框架提供了很好的集成支持,如Hibernate谱俭,Struts2奉件,JPA等
5.Spring DI機(jī)制降低了業(yè)務(wù)對象替換的復(fù)雜性。
6.Spring屬于低侵入昆著,代碼污染極低县貌。
7.Spring的高度可開放性,并不強(qiáng)制依賴于Spring凑懂,開發(fā)者可以自由選擇Spring部分或全部
Spring缺點(diǎn):
1.jsp中要寫很多代碼煤痕、控制器過于靈活,缺少一個(gè)公用控制器
2.Spring不支持分布式征候,這也是EJB仍然在用的原因之一杭攻。
3 Spring MCV和Spring的區(qū)別?
Spring mvc類似于struts的一個(gè)MVC開框架疤坝,其實(shí)都是屬于Spring兆解,Spring mvc需要有spring的架包作為支撐才能跑起來。
SSM框架—Spring+SpringMVC+MyBatis
4 SpringMVC核心處理流程
1跑揉、DispatcherServlet前端控制器接收發(fā)過來的請求锅睛,交給HandlerMapping處理器映射器
2、HandlerMapping處理器映射器历谍,根據(jù)請求路徑找到相應(yīng)的HandlerAdapter處理器適配器(處理器適配器就是那些攔截器或Controller)
3现拒、HandlerAdapter處理器適配器,處理一些功能請求望侈,返回一個(gè)ModelAndView對象(包括模型數(shù)據(jù)印蔬、邏輯視圖名)
4、ViewResolver視圖解析器脱衙,先根據(jù)ModelAndView中設(shè)置的View解析具體視圖
5、然后再將Model模型中的數(shù)據(jù)渲染到View上
這些過程都是以DispatcherServlet為中軸線進(jìn)行的。
Boy-20180729