摘要:引言剛考完期末,再也不用考試啦最近學習了慕課網(wǎng)的實戰(zhàn)課手寫,劍指開源框架靈魂。最近將本課程和看透結(jié)合起來學習,感覺受益匪淺,同時,糾正了我之前對的一些誤解。誤解洪荒時代的當年,開發(fā)都需要手動去實現(xiàn)。為了解決太多的問題,引入了,進行統(tǒng)一調(diào)度。
引言
剛考完期末,再也不用考試啦!!!
最近學習了慕課網(wǎng)的實戰(zhàn)課《手寫SpringMVC,劍指開源框架靈魂》。
spring-boot太過智能了,智能到我們完全不用去管底層是如何實現(xiàn)的,都可以很輕易地去開發(fā)一款web應(yīng)用。
最近將本課程和《看透Spring MVC》結(jié)合起來學習,感覺受益匪淺,同時,糾正了我之前對SpringMVC的一些誤解。
誤解 洪荒時代的Java Web當年,開發(fā)Java Web都需要手動去實現(xiàn)Servlet。
public class TestServlet implements Servlet { @Override public void init(ServletConfig config) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { } @Override public String getServletInfo() { return null; } @Override public void destroy() { } }
Servlet中規(guī)定了五個方法。
init初始化方法,service業(yè)務(wù)邏輯方法,destroy銷毀方法。
在web.xml文件中配置路由到Servlet之間的映射,也就是說,我們沒開發(fā)一個接口,都需要寫一個Servlet,然后配一遍xml。
test TestServlet test /test
所以就導致了項目中會有很多的Servlet,以及極其冗長的xml配置文件。
執(zhí)行流程整體執(zhí)行流程就如下圖所示:
當來請求時,客戶端和服務(wù)端的Tomcat建立連接,Tomcat去找web.xml,然后根據(jù)其中定義的url到Servlet的映射,去初始化相應(yīng)的Servlet,然后調(diào)用service方法處理業(yè)務(wù),返回。
最開始對SpringMVC的多線程不是很理解,現(xiàn)在終于明白了,多線程其實并不是SpringMVC管理的,而是當有一個新的客戶端建立連接時,Tomcat就會新建一個線程去調(diào)用Servlet的方法處理請求,所以多線程其實是Tomcat的多線程。
SpringMVCSpringMVC為了解決Servlet太多的問題,引入了DispatcherServlet,進行統(tǒng)一調(diào)度。
SpringMVC定義DispatcherServlet接管/,即所有請求,內(nèi)部再將請求分發(fā)給各個HandlerMapping,通俗來說就是控制器中的方法。
總結(jié)好讀書,不求甚解。 ---晉·陶淵明《五柳先生傳》做開發(fā),不可不求甚解。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/75176.html
摘要:起步的成功一個原因是它的可讀性,代碼清晰易懂,更容易被人類所理解,但有時可讀性會產(chǎn)生誤解。的誤解但是如果你嘗試這個判斷不見得管用。用來檢查左側(cè)和右側(cè)是否是完全相同的對象。每種語言的結(jié)構(gòu)都存在一些出乎意料的使用。 起步 Python 的成功一個原因是它的可讀性,代碼清晰易懂,更容易被人類所理解,但有時可讀性會產(chǎn)生誤解。 假如要判斷一個變量是不是 17,那可以: if x is 17: x...
摘要:三十而立時,無房單身郎。女生也經(jīng)常找他修電腦,只要有他在,所有的電子產(chǎn)品都能很快恢復原貌。 ??年少太輕狂,獨闖IT行。愁絲根根落,眼圈黑茫茫。bug數(shù)萬種,技能要...
摘要:不過在出來之后支持異步了,可以把業(yè)務(wù)操作放到獨立的線程池里面去,這樣可以盡快釋放線程,本身也支持異步了,本篇文章將帶你如何使用的異步特性來改造優(yōu)化其性能。 ? 我們知道spring-cloud-zuul是依賴springMVC來注冊路由的,而springMVC又是在建立在servlet之上的(這里微服務(wù)專家楊波老師寫過一篇文章講述其網(wǎng)絡(luò)模型,可以參考看看),在servlet3.0...
摘要:概念理解重要特性雙向綁定和之間無耦合通過操作利用提供的機制自動實現(xiàn)的更新。實現(xiàn)說明解析不包括模板指令等因為模板編譯解析等和本文核心主題無關(guān)這些僅僅是基于雙向綁定的應(yīng)用場景。雙向綁定的核心是實現(xiàn)。 引言 最近在看vue的源碼,有些感觸,下面闡述一些個人理解。之前寫過一篇文章,是講述關(guān)于觀察者模式的,與本文主旨有關(guān),需要的朋友可以看一下。 vue的核心是mvvm,vue2又增加了虛擬dom...
閱讀 661·2019-08-30 15:44
閱讀 1383·2019-08-30 11:02
閱讀 2987·2019-08-29 18:42
閱讀 3514·2019-08-29 16:16
閱讀 1723·2019-08-26 13:55
閱讀 1773·2019-08-26 13:45
閱讀 2388·2019-08-26 11:43
閱讀 3254·2019-08-26 10:32