34歲!100天!學(xué)會Java編程(Day53-Day59)—基于Spring框架的Web編程

喜歡你

這兩天看了個電影,主題是很俗套的灰姑娘與王子的故事,但故事展開的線索卻不是舞會與水晶鞋,而是人類最基本的需求——食物。所以這個片子使用了三個人類最基本的要素:愛情、食物、階級,野心不可謂不大。不過看到最后,讓我這個老男人都快感動落淚的,卻與食物和階級無關(guān),只與愛情有關(guān)。這個電影描繪出了愛情中最性感的階段,兩個迥然不同的人在某一點(diǎn)上深深地契合,彼此引為知己;想要逃離卻不斷被吸引,想要靠近性格卻截然不同,想要戀愛卻只是在自我的世界做了場夢,想要忘記卻已銘刻于心,想要說出喜歡你卻又詞不達(dá)意驚慌失措。好在故事結(jié)尾留下了一個happy ending,給飲食男女們留下了一點(diǎn)念想。這部電影叫做《喜歡你》。

(一)初識Spring

Spring是什么?
Spring是一個輕量級應(yīng)用開發(fā)框架,用于應(yīng)用程序協(xié)作對象管理,架構(gòu)運(yùn)行自動化,第三方框架整合等。

輕量級是什么意思?
Spring核心core包1.2M,整個框架的JAR包只有8.6M(V5.0.2),非侵入式框架,按需使用。定性的說法是,所謂輕量級是相對于重量級的EJB框架來說的。

Spring能幫我們做什么?
Spring除了不能幫我們寫業(yè)務(wù)邏輯,其余的幾乎什么都能幫助我們打理。

Spring常用的開發(fā)方式有哪些?
就我看到的三本書,就介紹了三種方法,分別是:
(1)使用Eclipse開發(fā),在項(xiàng)目中按需插入Spring的庫文件;
(2)使用MyEclipse開發(fā),可以看作是一個配置了豐富開發(fā)工具和插件的Eclipse,好處是方便,缺點(diǎn)是貴,而且還得在電腦上再裝一個Eclipse;
(3)使用IntelliJ IDEA開發(fā),同MyEclipse類似,是一個集成了豐富開發(fā)工具的IDE,提供了免費(fèi)版和收費(fèi)版下載。不過壞消息是只有收費(fèi)版提供Spring框架。
還有一點(diǎn)區(qū)別,方法(2)(3)提供了Maven工具,而方法(1)默認(rèn)不提供Maven,若要使用,需要另行安裝配置。

Spring框架的主要組成部分有哪些?
Spring框架包含的主要模塊有Spring CORE,Spring AOP,Spring MVC,Spring DAO,Spring TEST。更詳細(xì)的功能組成參見相應(yīng)書籍或Spring庫包。

Spring框架組成

Spring框架的工作流程主要包括哪些?
對于一個桌面應(yīng)用程序,Spring框架的基本工作流程如圖所示:

桌面應(yīng)用的Spring框架流程

其核心功能是IoC容器的依賴注入和Bean創(chuàng)建緩存機(jī)制。

對于一個Web應(yīng)用程序,SpringMVC框架的基本工作流程如圖所示:


Web應(yīng)用的SpringMVC框架流程

其核心功能是前端控制器DispatcherServlet的請求調(diào)度功能,輔以處理映射器、處理器適配器、試圖解析器等二級功能共同協(xié)作,完成一個典型httprequest的請求處理,具體流程如下:
(1)用戶向服務(wù)器發(fā)送請求request;
(2)DispatcherServlet接收請求,調(diào)用處理映射器HandlerMapping獲取映射處理器;
(3)DispatcherServlet調(diào)用處理器適配器HandlerAdapter,間接調(diào)用相應(yīng)的處理器Handler對用戶請求進(jìn)行處理;
(4)處理器Handler開始處理,其中Spring幫助對請求進(jìn)行了預(yù)處理,完成了消息轉(zhuǎn)換、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)驗(yàn)證,開發(fā)者需要編程如何對消息和數(shù)據(jù)進(jìn)一步處理。
(5)處理器Handler執(zhí)行完成,返回給前端控制器一個ModelAndView對象,其中包含視圖名和模型(數(shù)據(jù))。
(6)DispatcherServlet根據(jù)返回結(jié)果,選擇合適的視圖解析器ViewResolver進(jìn)行視圖處理。
(7)視圖解析器ViewResolver將模型Model傳遞給指定的視圖View(如JSP),并生成視圖。
(8)將生成的視圖返回給客戶端,瀏覽器渲染生成結(jié)果。

Spring MVC應(yīng)用的開發(fā)步驟是什么?
此處特指一個不使用Maven項(xiàng)目管理工具,基于Spring+Spring MVC框架的Web應(yīng)用程序的開發(fā)步驟,如下所示:
(1)選擇一個IDE,創(chuàng)建一個Web應(yīng)用程序 ,加載Spring等第三方基礎(chǔ)類庫。
(2)配置SpringMVC框架。通過配置web.xml定義一個前端控制器DispatcherServlet(此處指項(xiàng)目的web.xml,不是Tomcat服務(wù)器中的web.xml)。其次,需要一個springmvc-congfig.xml配置文件(該文件名可自行設(shè)置),其中主要是配置映射處理器等二級功能模塊和映射關(guān)系。
(3)開發(fā)控制層(Controller),定義處理用戶請求的處理器Handler,協(xié)調(diào)模型和視圖。依賴關(guān)系進(jìn)行獨(dú)立配置。
(4)開發(fā)展現(xiàn)層(也叫表現(xiàn)層,View),定義如何顯示應(yīng)用程序的數(shù)據(jù),并允許用戶和系統(tǒng)進(jìn)一步交互。依賴關(guān)系進(jìn)行獨(dú)立配置。
(5)開發(fā)業(yè)務(wù)層(也叫領(lǐng)域?qū)樱琈odel),通過業(yè)務(wù)規(guī)則來管理應(yīng)用程序的數(shù)據(jù)。依賴關(guān)系進(jìn)行獨(dú)立配置。
(6)開發(fā)持久層(也叫集成層),分離業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯,封裝對數(shù)據(jù)庫的訪問、存儲和對象數(shù)據(jù)持久化等。依賴關(guān)系進(jìn)行獨(dú)立配置。
(7)開發(fā)橫切模塊,定義性能監(jiān)測、訪問控制、事務(wù)管理、安全保護(hù)等橫切邏輯。依賴關(guān)系進(jìn)行獨(dú)立配置。
(8)應(yīng)用程序測試,對各層功能模塊開展單元測試和系統(tǒng)測試。
(9)應(yīng)用程序打包和發(fā)布。
其中,整個應(yīng)用程序開發(fā)過程中都涉及到程序的配置,Spring支持三種配置方式:XML、注解配置、Java類配置,通常三者可以混用,以下是三種注解的適用條件:

Spring支持的三種配置方式

(二)Spring框架的知識點(diǎn)梳理

對Spring框架的知識點(diǎn)梳理如下圖所示:


Spring框架的知識點(diǎn)

(三)CEv6.0項(xiàng)目重構(gòu)

文章太長,此部分放到下一篇文章中。

參考書目
《Spring 3.0就這么簡單》
《Spring入門經(jīng)典》
《Spring+MyBatis企業(yè)應(yīng)用實(shí)戰(zhàn)》
《Java EE設(shè)計(jì)模式—Spring企業(yè)級開發(fā)最佳實(shí)踐》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容