成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Spring框架之我見(四)——Spring MVC

shiina / 3112人閱讀

摘要:是結(jié)構(gòu)在框架中的一種表現(xiàn)形式。這句話聽起來有點(diǎn)繞,我們可以看一下下面這張圖,大家可以吧容器中的理解為全局變量,吧容器中的理解為局部變量。在方法體中可以訪問局部變量和全局變量,但是在方法外,就只能訪問全局變量,是不能訪問局部變量的。

聊完了Spring,我們來看看Spring在web方面的應(yīng)用Spring MVC。
MVC

首先我們來看什么是mvc?

大家知道在jsp里面也是可以寫java代碼的,但是如果我們這樣做就會(huì)有一個(gè)問題,就是代碼全部都雜糅在一起,無論是閱讀還是修改都將變得十分的困難。

MVC是模型(model)-視圖(view)-控制器(controller)的縮寫,他將我們的程序分為個(gè)三部分,頁面、控制層、模型層。這樣使我們的程序的邏輯更清晰,更容易維護(hù)。

它以將我們的業(yè)務(wù)邏輯、數(shù)據(jù)與界面顯示分離,將眾多的業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在需要改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯,提高編碼效率。

Spring MVC

Spring MVC 是MVC結(jié)構(gòu)在Spring框架中的一種表現(xiàn)形式。下面我們來看一下Spring MVC的結(jié)構(gòu):

由圖可知,Spring MVC的具體流程如下:
1.?首先用戶發(fā)送請(qǐng)求————>前端控制器(DispatcherServlet),前端控制器根據(jù)請(qǐng)求信息(如URL)來決定選擇哪一個(gè)頁面控制器進(jìn)行處理并把請(qǐng)求委托給它,即以前的控制器的控制邏輯部分;

2.?頁面控制器接收到請(qǐng)求后,進(jìn)行功能處理,首先需要收集和綁定請(qǐng)求參數(shù)到一個(gè)對(duì)象,并進(jìn)行驗(yàn)證。然后將命令對(duì)象委托給業(yè)務(wù)對(duì)象進(jìn)行處理;處理完畢后返回一個(gè)ModelAndView(模型數(shù)據(jù)和邏輯視圖名);

3.?前端控制器收回控制權(quán),然后根據(jù)返回的邏輯視圖名,選擇相應(yīng)的視圖進(jìn)行渲染(ViewResolver),并把模型數(shù)據(jù)傳入以便視圖渲染。

4.?前端控制器再次收回控制權(quán),將響應(yīng)返回給用戶;

大家可以把這想象成自己去醫(yī)院看病的流程,前端控制器(DispatcherServlet)在這里就相當(dāng)于一個(gè)醫(yī)院前臺(tái)的作用,我們看病時(shí)首先需要先到前臺(tái)掛號(hào),然后根據(jù)病情被分配到不同的科室,看完病之后還要再到前臺(tái)去付錢拿藥。

Spring和Spring MVC容器之間的關(guān)系

我們理解了Spring和Spring MVC,這里我們討論一下Spring容器和Spring MVC容器之間的關(guān)系?
首先要說明的是:一個(gè)項(xiàng)目中,容器不一定只有一個(gè)。
Spring容器用于管理Spring中的Bean,而Spring MVC容器用于管理Spring MVC中的Bean。Spring是父容器,Spring MVC是其子容器。并且在Spring MVC子容器中注冊(cè)的Bean可以引用Spring父容器中注冊(cè)的Bean,但在Spring容器中注冊(cè)的Bean卻不能引用Spring MVC容器中注冊(cè)的Bean。

這句話聽起來有點(diǎn)繞,我們可以看一下下面這張圖,大家可以吧spring容器中的bean理解為全局變量,吧spring MVC容器中的bean理解為局部變量。在方法體中可以訪問局部變量和全局變量,但是在方法外,就只能訪問全局變量,是不能訪問局部變量的。

這里我們要區(qū)分一下哪些bean是需要被SpringMVC管理的,最主要就是控制器(Controller),因?yàn)樗枰c前端控制器交互。其他的可以都交給spring的容器管理。

下一節(jié)我們來聊聊,Spring的進(jìn)階版Spring Boot。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68180.html

相關(guān)文章

  • Spring框架我見(三)——IOC、AOP

    摘要:模塊負(fù)責(zé)的所有面向切面的功能。總結(jié)的統(tǒng)一管理,降低了對(duì)象之間的耦合對(duì)主流的框架提供了很好的集成支持提供眾多組件,事務(wù)管理,等具有高度可開放性,開發(fā)者可以自由選擇部分或全部主要使用工廠模式和代理模式。 聊完了Spring框架中最重要的兩種設(shè)計(jì)模式,我們來看一下Spring框架的模塊和結(jié)構(gòu)圖。 Spring框架的結(jié)構(gòu) 下圖是Spring官方給出的Spring框架的結(jié)構(gòu)圖。 showImg(...

    khs1994 評(píng)論0 收藏0
  • Spring框架我見(五)——Spring Boot

    摘要:通過我們可以更輕松地入門,更簡(jiǎn)單的使用的框架。團(tuán)隊(duì)為了擺脫框架中各類繁復(fù)紛雜的配置,使用約定優(yōu)于配置的思想,在基礎(chǔ)上整合了大量常用的第三方庫(kù)的開發(fā)框架。這里還要說的一點(diǎn),的出現(xiàn)并不是單純的為了簡(jiǎn)化開發(fā),更是為做鋪墊。 說完了Spring 我們來聊聊Spring的進(jìn)階版Spring Boot,如果你還不知道Spring Boot,那希望這篇文章能夠?yàn)槟阒该鞣较颉?Spring Boot ...

    張巨偉 評(píng)論0 收藏0
  • Spring框架我見(六)——Spring Cloud

    摘要:系統(tǒng)中的各個(gè)微服務(wù)可被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。傳統(tǒng)架構(gòu)升級(jí)困難。新的輕量級(jí)協(xié)議容器化的出現(xiàn)。熔斷處理在微服務(wù)出現(xiàn)問題時(shí)防止出現(xiàn)雪崩效應(yīng)。 聊完Spring Boot,我們來看看Spring Boot最重要的一方面的應(yīng)用——Spring Cloud。 Spring Cloud 再聊SpringCloud之前我們先聊聊微服務(wù)。 ...

    alighters 評(píng)論0 收藏0
  • Spring框架我見(二)——代理模式

    摘要:聊完了工廠模式,下面我們來說框架中的另一個(gè)核心設(shè)計(jì)模式代理模式。這里的外賣小哥就相當(dāng)于是我們的代理。主要分為代理和代理。 聊完了工廠模式,下面我們來說Spring框架中的另一個(gè)核心設(shè)計(jì)模式——代理模式(Proxy Pattern)。 代理模式 大家可以先不用看概念,先舉個(gè)吃飯的例子:比如說我們想吃飯,我們可以選擇自己做飯吃、去飯店吃、叫外賣吃。如果我們選擇自己做著吃,我們就需要去買菜、...

    oneasp 評(píng)論0 收藏0
  • Spring框架我見(一)——工廠模式

    摘要:相對(duì)于工廠模式,抽象工廠模式生產(chǎn)的對(duì)象更加具體,也更加豐富,但相對(duì)編碼也更加復(fù)雜。具體的抽象工廠模式的實(shí)現(xiàn)大家可以參考菜鳥教程。知道了工廠模式和抽象工廠模式的區(qū)別,請(qǐng)大家使用的時(shí)候應(yīng)該根據(jù)具體的情況進(jìn)行選擇。 大家好,今天給大家分享一些Spring的學(xué)習(xí)心得,在講Spring之前,先和大家分享Spring中核心的設(shè)計(jì)模式。 工廠模式 在聊概念之前我先問問大家:什么是工廠? 這個(gè)很簡(jiǎn)單,...

    venmos 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

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