Spring MVC的優(yōu)點(diǎn)與核心接口_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
為開發(fā)團(tuán)隊(duì)選擇一款優(yōu)秀的MVC框架是件難事兒,在眾多可行的方案中決擇需要很高的經(jīng)驗(yàn)和水平。你的一個(gè)決定會(huì)影響團(tuán)隊(duì)未來(lái)的幾年。要考慮方面太多:
1、簡(jiǎn)單易用,以提高開發(fā)效率。使小部分的精力在框架上,大部分的精力放在業(yè)務(wù)上。
2、性能優(yōu)秀,這是一個(gè)最能吸引眼球的話題。
3、盡量使用大眾的框架(避免使用小眾的、私有的框架),新招聘來(lái)的開發(fā)人員有一些這方面技術(shù)積累,減低人員流動(dòng)再適應(yīng)的影響。
如果你還在為這件事件發(fā)愁,本文最適合你了。選擇Spring MVC吧。
Spring MVC是當(dāng)前最優(yōu)秀的MVC框架,自從Spring 2.5版本發(fā)布后,由于支持注解配置,易用性有了大幅度的提高。Spring 3.0更加完善,實(shí)現(xiàn)了對(duì)Struts 2的超越?,F(xiàn)在越來(lái)越多的開發(fā)團(tuán)隊(duì)選擇了Spring MVC。
Struts2也是非常優(yōu)秀的MVC構(gòu)架,優(yōu)點(diǎn)非常多比如良好的結(jié)構(gòu),攔截器的思想,豐富的功能。但這里想說(shuō)的是缺點(diǎn),Struts2由于采用了值棧、OGNL表達(dá)式、struts2標(biāo)簽庫(kù)等,會(huì)導(dǎo)致應(yīng)用的性能下降,應(yīng)避免使用這些功能。而Struts2的多層攔截器、多實(shí)例action性能都很好。
Spring3 MVC的優(yōu)點(diǎn):
1、Spring3 MVC使用簡(jiǎn)單,學(xué)習(xí)成本低。學(xué)習(xí)難度小于Struts2,Struts2用不上的多余功能太多。呵呵,當(dāng)然這不是決定因素。
2、Spring3 MVC很容易就可以寫出性能優(yōu)秀的程序,Struts2要處處小心才可以寫出性能優(yōu)秀的程序(指MVC部分)
3、Spring3 MVC的靈活是你無(wú)法想像的,Spring框架的擴(kuò)展性有口皆碑,Spring3 MVC當(dāng)然也不會(huì)落后,不會(huì)因使用了MVC框架而感到有任何的限制。
Struts2的眾多優(yōu)點(diǎn):
1、老牌的知名框架,從Struts1起積累了大量用戶群體。技術(shù)文檔豐富。
2、其它方面略... (呵呵,是不是不公平?)
Spring的官方下載網(wǎng)址是:http://www.springsource.org/download (本文使用是的Spring 3.0.5版本)
二、核心類與接口:
先來(lái)了解一下,幾個(gè)重要的接口與類?,F(xiàn)在不知道他們是干什么的沒(méi)關(guān)系,先混個(gè)臉熟,為以后認(rèn)識(shí)他們打個(gè)基礎(chǔ)。
DispatcherServlet -- 前置控制器
HandlerMapping接口 -- 處理請(qǐng)求的映射
HandlerMapping接口的實(shí)現(xiàn)類:
SimpleUrlHandlerMapping 通過(guò)配置文件,把一個(gè)URL映射到Controller
DefaultAnnotationHandlerMapping 通過(guò)注解,把一個(gè)URL映射到Controller類上
HandlerAdapter接口 -- 處理請(qǐng)求的映射
AnnotationMethodHandlerAdapter類,通過(guò)注解,把一個(gè)URL映射到Controller類的方法上
Controller接口 -- 控制器
由于我們使用了@Controller注解,添加了@Controller注解注解的類就可以擔(dān)任控制器(Action)的職責(zé),
所以我們并沒(méi)有用到這個(gè)接口。
HandlerInterceptor 接口--攔截器
無(wú)圖,我們自己實(shí)現(xiàn)這個(gè)接口,來(lái)完成攔截的器的工作。
ViewResolver接口的實(shí)現(xiàn)類
UrlBasedViewResolver類 通過(guò)配置文件,把一個(gè)視圖名交給到一個(gè)View來(lái)處理
InternalResourceViewResolver類,比上面的類,加入了JSTL的支持
View接口
JstlView類
LocalResolver接口
核心流程圖:
- Spring Boot配置接口WebMvcConfigurer的實(shí)現(xiàn)
- Spring MVC接口防數(shù)據(jù)篡改和重復(fù)提交
- spring MVC中接口參數(shù)解析的過(guò)程詳解
- SpringMVC編程使用Controller接口實(shí)現(xiàn)控制器實(shí)例代碼
- Springmvc Controller接口代碼示例
- SpringMVC Restful api接口實(shí)現(xiàn)的代碼
- Spring MVC 使用支付寶接口完成在線支付的示例代碼
- springMVC利用FastJson接口返回json數(shù)據(jù)相關(guān)配置詳解
- 基于Mock測(cè)試Spring MVC接口過(guò)程解析
相關(guān)文章
使用logstash同步mysql數(shù)據(jù)到elasticsearch實(shí)現(xiàn)
這篇文章主要為大家介紹了使用logstash同步mysql數(shù)據(jù)到elasticsearch實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12Spring Boot打開URL出現(xiàn)signin問(wèn)題的解決
這篇文章主要介紹了Spring Boot打開URL出現(xiàn)signin問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12Java中的CyclicBarrier循環(huán)柵欄解析
這篇文章主要介紹了Java中的CyclicBarrier循環(huán)柵欄解析,從字面上的意思可以知道,這個(gè)類的中文意思是"循環(huán)柵欄",大概的意思就是一個(gè)可循環(huán)利用的屏障,它的作用就是會(huì)讓所有線程都等待完成后才會(huì)繼續(xù)下一步行動(dòng),需要的朋友可以參考下2023-12-12sentinel整合ribbon與fallback流程分步講解
這篇文章主要介紹了sentinel整合ribbon與fallback分步流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08