- N +

springmvc工程搭建步驟(springmvc幫你做了什么)

springmvc原理及流程

第一步:用戶發起請求到前端控制器(DispatcherServlet)

第二步:前端控制器請求處理器映射器(HandlerMappering)去查找處理器(Handle):通過xml配置或者注解進行查找

第三步:找到以后處理器映射器(HandlerMappering)像前端控制器返回執行鏈(HandlerExecutionChain)

第四步:前端控制器(DispatcherServlet)調用處理器適配器(HandlerAdapter)去執行處理器(Handler)

第五步:處理器適配器去執行Handler

第六步:Handler執行完給處理器適配器返回ModelAndView

第七步:處理器適配器向前端控制器返回ModelAndView

第八步:前端控制器請求視圖解析器(ViewResolver)去進行視圖解析

第九步:視圖解析器像前端控制器返回View

第十步:前端控制器對視圖進行渲染

第十一步:前端控制器向用戶響應結果

spring mvc如何指定庫

當SpringMVC的DispatcherServlet配置的映射路徑是/時,所有的請求都將被SpringMVC攔截,如果我們想訪問某個路徑下的靜態資源其實是不能直接訪問的。

基于這種情況,SpringMVC提供了<mvc:resources/>配置來告訴SpringMVC,哪些請求是針對靜態資源的。

它需要指定兩個參數,location用來指定靜態資源對應的實際路徑,可以通過classpath:META-INF/static/這種方式指定類路徑下的資源,如果有多個路徑,可以通過英文逗號分隔。

mapping用來指定哪些請求會被認為是在請求靜態資源。下面的配置就指定了格式滿足/static/**的請求路徑被認為是在請求靜態資源,會相應的到/static/路徑下尋找對應文件。

所以當請求路徑是/static/css/default.css時會響應/static/css目錄下的default.css文

spring mvc流程詳解

1、首先創建父容器(AnnotationConfigWebApplicationContext),通過自定義的getRootConfigClasses()拿到配置類,并注冊到父容器中。

2、通過父容器作為參數創建ContextLoaderListener監聽器。并添加到servletContext(Tomcatservlet容器)。

3、通過自定的getServletConfigClasses()方法拿到MVC的配置類創建子容器,并把配置類注冊到子容器中。

4、創建DispatcherServlet,并將DispatcherServlet添加到servletContext的Servlet容器中去。

5、設置dispatcherServlet相關屬性(啟動時加載,設置映射路徑)。

springmvc和mybatis整合可不可以不需要spring

首先回答你的問題,肯定是不可以的。提這個問題可能是你對Spring和SpringMVC本身理解不夠。下面我簡單介紹一下Spring。

Spring:

我們一般單說Spring是指的SpringFrameworkzh.wikipedia.org

是一個開源的全棧的開發框架,Spring提供一個功能強大的Spring容器。核心是AOP和IOC。

SpringMVC

要說SpringMVC前,先說一下什么是MVC。

MVC是一種使用MVC(ModelViewController模型-視圖-控制器)設計創建Web應用程序的模式??梢钥吹街挥惺沁@樣三層結構設計的都是MVC框架。較老的SSH中的Struts就是一個MVC框架。隨著Spring的發展,Spring本身也有了自己的MVC實現,也就是SpringMVC。而且慢慢取代了Struts。

SpringBoot

因為Spring項目的配置復雜等問題,為了簡化開發者的使用,從而創造性地推出了SpringBoot。約定優于配置,簡化了spring的配置流程。SpringBoot里面有大量的第三方啟動包,可以快速搭建項目,可以簡單理解是一個Spring項目的腳手架,懶人包。

SpringCloud

有了SpringBoot已經可以快速搭建一個服務。但是隨著微服務的興起,服務越來越多。服務的治理成了最主要的問題,SpringCloud就應運而生。

SpringCloud基于SpringBoot,為微服務體系開發中的架構問題,提供了一整完套的解決方案,包括:服務注冊與發現,服務消費,服務保護與熔斷,網關,分布式調用追蹤,分布式配置管理等。

最后官網學習最靠譜,自己可以加深一下理解。

如何快速上手Spring boot

推薦以SpringBoot教程與SpringCloud教程的詳細開源項目“SpringBoot-Learning”此項目內容為SpringBoot教程程序樣例,對于SpringBoot的初學者來說非常有用,文末也列出了Spring相關開源項目,供大家交流學習。

1.SpringBoot-Learning部分樣例:

快速入門

chapter1:基本項目構建(可作為工程腳手架),引入web模塊,完成一個簡單的RESTfulAPI使用Intellij中的SpringInitializr來快速構建SpringBoot/Cloud工程

工程配置

chapter2-1-1:配置文件詳解:自定義屬性、隨機數、多環境配置等

Web開發

chapter3-1-1:構建一個較為復雜的RESTfulAPI以及單元測試chapter3-1-2:使用Thymeleaf模板引擎渲染web視圖chapter3-1-3:使用Freemarker模板引擎渲染web視圖chapter3-1-4:使用Velocity模板引擎渲染web視圖chapter3-1-5:使用Swagger2構建RESTfulAPIchapter3-1-6:統一異常處理

數據訪問、日志管理等等,項目地址:程序猿DD/SpringBoot-Learning-碼云Gitee.com

2.項目名稱:springboot實踐學習案例springboot-learning-example

項目結構:

a.『基礎-入門篇』

springboot-helloworld《SpringBoot之HelloWorld詳解》springboot-properties《SpringBoot之配置文件詳解》

b.『基礎-Web業務開發篇』

springboot-restful《Springboot實現Restful服務,基于HTTP/JSON傳輸》《SpringBoot之RESRfulAPI權限控制》springboot-freemarker《SpringBoot集成FreeMarker詳解案例》springboot-validation-over-json《SpringBootHTTPoverJSON的錯誤碼異常處理》

c.『基礎–數據存儲篇』

springboot-mybatis《Springboot整合Mybatis的完整Web案例》springboot-mybatis-annotation《SpringBoot整合MybatisAnnotation注解的完整Web案例》springboot-mybatis-mutil-datasource《SpringBoot整合Mybatis實現Druid多數據源詳解》

d.『基礎–數據緩存篇』

springboot-mybatis-redis《SpringBoot整合Redis實現緩存操作》springboot-mybatis-redis-annotation《SpringBoot注解實現整合Redis作為緩存》

e.『其他篇』

springboot-elasticsearch《SpringBoot整合Elasticsearch,實現functionscorequery權重分查詢》springboot-dubbo-serverspringboot-dubbo-clientDubbo服務提供者工程和Dubbo服務消費者工程《Springboot整合Dubbo/ZooKeeper詳解SOA案例》《SpringBoot中如何使用DubboActivate擴展點》

SpringDataES篇

spring-data-elasticsearch-crud《SpringDataElasticsearch-基本案例》spring-data-elasticsearch-queryspring-data-elasticsearch-實戰案例詳解

項目地址:泥沙磚瓦漿木匠/springboot-learning-example-碼云Gitee.com

Spring相關項目推薦:

1.項目名稱:基于Spring+SpringMVC+Mybatis分布式敏捷開發系統架構

項目內容:基于Spring+SpringMVC+Mybatis分布式敏捷開發系統架構,提供整套公共微服務服務模塊:集中權限管理(單點登錄)、內容管理、支付中心、用戶管理(支持第三方登錄)、微信平臺、存儲系統、配置中心、日志分析、任務和通知等,支持服務治理、監控和追蹤,努力為中小型企業打造全方位J2EE企業級開發解決方案。

項目地址:shuzheng/zheng-碼云Gitee.com

2.項目名稱:模塊化開發系統ybg-spring-fast

項目簡介:以SpringBoot為中心,模塊化開發系統,用戶可以隨意刪減除權限框架外任意的系統模塊。復用,組裝性強主要應用技術:springSecurity+Ehcache+quartz+swagger2+Mysql5.6+springjdbc+druid+springsocial+springsession+layerui+vue.js等。

項目地址:YYDeament/ybg-spring-fast-碼云Gitee.com

3.項目名稱:JAVA分布式快速開發平臺iBase4J

項目內容:JAVA分布式快速開發平臺:SpringBoot,SpringMVC,Mybatis,mybatis-plus,motan/dubbo分布式,Redis緩存,Shiro權限管理,Spring-Session單點登錄,Quartz分布式集群調度,Restful服務,QQ/微信登錄,Apptoken登錄,微信/支付寶支付;日期轉換、數據類型轉換、序列化、漢字轉拼音、身份證號碼驗證、數字轉人民幣、發送短信、發送郵件、加密解密、圖片處理、excel導入導出、FTP/SFTP/fastDFS上傳下載、二維碼、XML讀寫、高精度計算、系統配置工具類等等。

項目地址:iBase4J/iBase4J-碼云Gitee.com

4.項目名稱:JavaEE(J2EE)快速開發框架ThinkGem

項目內容:JavaEE(J2EE)快速開發框架,基于經典技術組合(SpringMVC、ApacheShiro、MyBatis、BootstrapUI),包括核心模塊如:組織機構、角色用戶、權限授權、數據權限、內容管理、工作流等。雖說很長時間沒有大的更新了,但它的架構精良易于擴展深受大家喜愛,依然是中小企業的首選,它的功能設計、底層架構也非常具有參考意義、是學習入門的首選。關注我ThinkGem開源中國博客了解4.0最新動態。

項目地址:ThinkGem/JeeSite-碼云Gitee.com

5.項目名稱:Java快速開發平臺MCMS

項目內容:完整開源,Java快速開發平臺?;赟pring、SpringMVC、Mybatis架構,MStore提供更多好用的插件與模板(文章、商城、微信、論壇、會員、評論、支付、積分、工作流、任務調度等,同時提供上百套免費模板任意選擇),價值源自分享!銘飛系統不僅一套簡單好用的開源系統、更是一整套優質的開源生態內容體系。

項目地址:銘飛/MCMS-Gitee

6.項目名稱:基于SpringCloud微服務化開發平臺AG-Admin

項目內容:AG-Admin是國內首個基于SpringCloud微服務化開發平臺,具有統一授權、認證后臺管理系統,其中包含具備用戶管理、資源權限管理、網關API管理等多個模塊,支持多業務系統并行開發,可以作為后端服務的開發腳手架。代碼簡潔,架構清晰,適合學習和直接項目中使用。核心技術采用Eureka、Fegin、Ribbon、Zuul、Hystrix、JWTToken、Mybatis等主要框架和中間件,前端采用vue-element-admin組件。

項目地址:老A/AG-Admin-碼云Gitee.com

7.項目名稱:輕量級的SpringBoot快速開發平臺renren-fast

項目簡介:renren-fast是一個輕量級的SpringBoot快速開發平臺,其設計目標是開發迅速、學習簡單、輕量級、易擴展;使用SpringBoot、Shiro、MyBatis、Redis、Bootstrap、Vue2.x等框架,包含:管理員列表、角色管理、菜單管理、定時任務、參數管理、代碼生成器、日志管理、云存儲、API模塊(APP接口開發利器)、前后端分離等。

springboot和springmvc區別

springboot和springmvc區別:

springboot只是一個配置工具,整合工具,輔助工具.

springmvc是框架,項目中實際運行的代碼

Spring框架就像一個家族,有眾多衍生產品例如boot、security、jpa等等。但他們的基礎都是Spring的ioc和aop,ioc提供了依賴注入的容器,aop解決了面向橫切面的編程,然后在此兩者的基礎上實現了其他延伸產品的高級功能。

SpringMVC提供了一種輕度耦合的方式來開發web應用。它是Spring的一個模塊,是一個web框架。通過DispatcherServlet,ModelAndView和ViewResolver,開發web應用變得很容易。解決的問題領域是網站應用程序或者服務開發——URL路由、Session、模板引擎、靜態Web資源等等。

SpringBoot實現了自動配置,降低了項目搭建的復雜度。它主要是為了解決使用Spring框架需要進行大量的配置太麻煩的問題,所以它并不是用來替代Spring的解決方案,而是和Spring框架緊密結合用于提升Spring開發者體驗的工具。同時它集成了大量常用的第三方庫配置(例如Jackson,JDBC,Mongo,Redis,Mail等等),SpringBoot應用中這些第三方庫幾乎可以零配置的開箱即用(out-of-the-box)。

SpringBoot只是承載者,輔助你簡化項目搭建過程的。如果承載的是WEB項目,使用SpringMVC作為MVC框架,那么工作流程和你上面描述的是完全一樣的,因為這部分工作是SpringMVC做的而不是SpringBoot。

對使用者來說,換用SpringBoot以后,項目初始化方法變了,配置文件變了,另外就是不需要單獨安裝Tomcat這類容器服務器了,maven打出jar包直接跑起來就是個網站,但你最核心的業務邏輯實現與業務流程實現沒有任何變化。

總結:

Spring最初利用“工廠模式”(DI)和“代理模式”(AOP)解耦應用組件。大家覺得挺好用,于是按照這種模式搞了一個MVC框架(一些用Spring解耦的組件),用開發web應用(SpringMVC)。然后發現每次開發都寫很多樣板代碼,為了簡化工作流程,于是開發出了一些“懶人整合包”(starter),這套就是SpringBoot。

所以,用最簡練的語言概括就是:

Spring是一個“引擎”;

SpringMVC是基于Spring的一個MVC框架;

SpringBoot是基于Spring4的條件注冊的一套快速開發整合包。

返回列表
上一篇:
下一篇: