亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

我對 SpringMVC 的一些誤解

seanlook / 2075人閱讀

摘要:引言剛考完期末,再也不用考試?yán)沧罱鼘W(xué)習(xí)了慕課網(wǎng)的實(shí)戰(zhàn)課手寫,劍指開源框架靈魂。最近將本課程和看透結(jié)合起來學(xué)習(xí),感覺受益匪淺,同時(shí),糾正了我之前對的一些誤解。誤解洪荒時(shí)代的當(dāng)年,開發(fā)都需要手動(dòng)去實(shí)現(xiàn)。為了解決太多的問題,引入了,進(jìn)行統(tǒng)一調(diào)度。

引言

剛考完期末,再也不用考試?yán)玻。。?/p>

最近學(xué)習(xí)了慕課網(wǎng)的實(shí)戰(zhàn)課《手寫SpringMVC,劍指開源框架靈魂》。

spring-boot太過智能了,智能到我們完全不用去管底層是如何實(shí)現(xiàn)的,都可以很輕易地去開發(fā)一款web應(yīng)用。

最近將本課程和《看透Spring MVC》結(jié)合起來學(xué)習(xí),感覺受益匪淺,同時(shí),糾正了我之前對SpringMVC的一些誤解。

誤解 洪荒時(shí)代的Java Web

當(dāng)年,開發(fā)Java Web都需要手動(dòng)去實(shí)現(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ī)定了五個(gè)方法。

init初始化方法,service業(yè)務(wù)邏輯方法,destroy銷毀方法。

web.xml文件中配置路由到Servlet之間的映射,也就是說,我們沒開發(fā)一個(gè)接口,都需要寫一個(gè)Servlet,然后配一遍xml。



    test
    TestServlet


    test
    /test

所以就導(dǎo)致了項(xiàng)目中會(huì)有很多的Servlet,以及極其冗長的xml配置文件。

執(zhí)行流程

整體執(zhí)行流程就如下圖所示:

當(dāng)來請求時(shí),客戶端和服務(wù)端的Tomcat建立連接,Tomcat去找web.xml,然后根據(jù)其中定義的urlServlet的映射,去初始化相應(yīng)的Servlet,然后調(diào)用service方法處理業(yè)務(wù),返回。

最開始對SpringMVC的多線程不是很理解,現(xiàn)在終于明白了,多線程其實(shí)并不是SpringMVC管理的,而是當(dāng)有一個(gè)新的客戶端建立連接時(shí),Tomcat就會(huì)新建一個(gè)線程去調(diào)用Servlet的方法處理請求,所以多線程其實(shí)是Tomcat的多線程。

SpringMVC

SpringMVC為了解決Servlet太多的問題,引入了DispatcherServlet,進(jìn)行統(tǒng)一調(diào)度。

SpringMVC定義DispatcherServlet接管/,即所有請求,內(nèi)部再將請求分發(fā)給各個(gè)HandlerMapping,通俗來說就是控制器中的方法。

總結(jié)
好讀書,不求甚解。  ---晉·陶淵明《五柳先生傳》

做開發(fā),不可不求甚解。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/75176.html

相關(guān)文章

  • Python 中 is 語法帶來誤解

    摘要:起步的成功一個(gè)原因是它的可讀性,代碼清晰易懂,更容易被人類所理解,但有時(shí)可讀性會(huì)產(chǎn)生誤解。的誤解但是如果你嘗試這個(gè)判斷不見得管用。用來檢查左側(cè)和右側(cè)是否是完全相同的對象。每種語言的結(jié)構(gòu)都存在一些出乎意料的使用。 起步 Python 的成功一個(gè)原因是它的可讀性,代碼清晰易懂,更容易被人類所理解,但有時(shí)可讀性會(huì)產(chǎn)生誤解。 假如要判斷一個(gè)變量是不是 17,那可以: if x is 17: x...

    Yuqi 評論0 收藏0
  • 誰說“程序員離開電腦就是廢物?我身邊這位大兄弟表示不服!真事

    摘要:三十而立時(shí),無房單身郎。女生也經(jīng)常找他修電腦,只要有他在,所有的電子產(chǎn)品都能很快恢復(fù)原貌。 ??年少太輕狂,獨(dú)闖IT行。愁絲根根落,眼圈黑茫茫。bug數(shù)萬種,技能要...

    happyfish 評論0 收藏0
  • 使用servlet3.0異步特性改造spring-cloud-zuul

    摘要:不過在出來之后支持異步了,可以把業(yè)務(wù)操作放到獨(dú)立的線程池里面去,這樣可以盡快釋放線程,本身也支持異步了,本篇文章將帶你如何使用的異步特性來改造優(yōu)化其性能。 ? 我們知道spring-cloud-zuul是依賴springMVC來注冊路由的,而springMVC又是在建立在servlet之上的(這里微服務(wù)專家楊波老師寫過一篇文章講述其網(wǎng)絡(luò)模型,可以參考看看),在servlet3.0...

    HmyBmny 評論0 收藏0
  • 訂閱發(fā)布和vue雙向綁定

    摘要:概念理解重要特性雙向綁定和之間無耦合通過操作利用提供的機(jī)制自動(dòng)實(shí)現(xiàn)的更新。實(shí)現(xiàn)說明解析不包括模板指令等因?yàn)槟0寰幾g解析等和本文核心主題無關(guān)這些僅僅是基于雙向綁定的應(yīng)用場景。雙向綁定的核心是實(shí)現(xiàn)。 引言 最近在看vue的源碼,有些感觸,下面闡述一些個(gè)人理解。之前寫過一篇文章,是講述關(guān)于觀察者模式的,與本文主旨有關(guān),需要的朋友可以看一下。 vue的核心是mvvm,vue2又增加了虛擬dom...

    Joyven 評論0 收藏0

發(fā)表評論

0條評論

seanlook

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<