什么是框架?spring mvc框架
生活随笔
收集整理的這篇文章主要介紹了
什么是框架?spring mvc框架
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
框架:
框指的是其是一個(gè)框子,有約束性;架是指的其支撐性。IT中的框架主要指的為解決特定的一個(gè)開(kāi)放性問(wèn)題而設(shè)計(jì)的具有一定約束性的支撐結(jié)構(gòu)。在次結(jié)構(gòu)上可以根據(jù)具體問(wèn)題安插、擴(kuò)展更多的組成部分,從而迅速和方便的構(gòu)建完整的解決問(wèn)題的方案。
特點(diǎn):
- 不能完整的解決問(wèn)題,但是可以幫助我們快速的解決問(wèn)題
- 天生為擴(kuò)展而設(shè)計(jì)的,不針對(duì)特定問(wèn)題,特定問(wèn)題需要擴(kuò)展、安插來(lái)實(shí)現(xiàn)
- 框架時(shí)常配套了一些幫助解決某類問(wèn)題的庫(kù)或者工具,Java中就是一些列的jar包,其本質(zhì)就是對(duì)jdk功能的擴(kuò)展
SpringMVC框架的執(zhí)行流程:
- 用戶發(fā)送請(qǐng)求,請(qǐng)求被dispatcherServlet 捕獲對(duì)url進(jìn)行解析,根據(jù)URL,調(diào)用handlermapping找到對(duì)應(yīng)的handler進(jìn)行處理,執(zhí)行完成后返回給modelandview返回給前端;
- dispatcherservlet根據(jù)modelandview對(duì)象調(diào)用視圖解析器viewresolver進(jìn)行結(jié)果渲染,返回到客戶端
Struts2和springmvc的區(qū)別:
- 核心控制器:用途是處理所有的請(qǐng),Struts2核心控制器是filter,而springMVC核心控制器是servlet。
- 控制器實(shí)例:springMVC是基于方法設(shè)計(jì)的,而Struts是基于對(duì)象,每次發(fā)送一個(gè)請(qǐng)求都實(shí)例化一個(gè)action,每個(gè)action都會(huì)注入。而springmvc只有一個(gè)實(shí)例,每次請(qǐng)求執(zhí)行對(duì)應(yīng)的方法即可
- 管理方式:springMVc是spring中的一個(gè)模塊,通過(guò)spring管理更加簡(jiǎn)單方便,而Struts采用很多xml參數(shù)進(jìn)行管理
- 參數(shù)傳遞:springmvc通過(guò)方法參數(shù)進(jìn)行接收,Struts2則是自身提供
- 學(xué)習(xí)難度:Struts的攔截器、值棧、ognl表達(dá)式學(xué)習(xí)成本高,而springmvc比較簡(jiǎn)單,較快上手
- interceptor的實(shí)現(xiàn)機(jī)制:Struts有自己的攔截器機(jī)制,而springmvc則是用的獨(dú)立的aop方式。導(dǎo)致Struts的配置文件比springmvc大,springmvc更加簡(jiǎn)潔,開(kāi)發(fā)效率也比Struts高很多
spring的兩大核心
IOC
核心原理:(容器map)+反射(工廠模式)+配置文件
AOP
核心原理:注解+動(dòng)態(tài)代理(cglib+jdkproxy)在執(zhí)行前后或者異常后做相關(guān)邏輯,主要用aop來(lái)做:事務(wù)處理,日志記錄、權(quán)限判斷
spring的事務(wù)傳播特性
- propagation——required :如果存在一個(gè)事務(wù)就支持當(dāng)前事務(wù),如果沒(méi)有則開(kāi)啟事務(wù)
- propagation——supports:如果存在一個(gè)事務(wù)支持當(dāng)前事務(wù),如果沒(méi)有則以非事務(wù)的方式執(zhí)行
- propagation——mandatory:如果存在一個(gè)事務(wù)則支持事務(wù),如果沒(méi)有一個(gè)事務(wù)則拋出異常
- propagation——requires-new:總是開(kāi)啟一個(gè)新的事務(wù),如果一個(gè)事務(wù)已經(jīng)存在則將這個(gè)存在的事務(wù)掛起
- propagation——not-supported:總是非事務(wù)的執(zhí)行,并掛起任何存在的事務(wù)
- propagation——never:總是非事務(wù)的執(zhí)行,如果存在一個(gè)活動(dòng)的事務(wù)則拋出異常
- propagation——nested:如果一個(gè)活動(dòng)的事務(wù)存在,則運(yùn)行在一個(gè)嵌套的事物中,如果沒(méi)有活動(dòng)事務(wù),則按照propagation-required屬性執(zhí)行
總結(jié)
以上是生活随笔為你收集整理的什么是框架?spring mvc框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php日期转时间戳
- 下一篇: Java成神之路技术整理(长期更新)