????????Spring Boot入門教程(一):搭建SpringMVC工程和Spring Boot工程
轉(zhuǎn)載自:https://blog.csdn.net/vbirdbest/article/details/79573740
一:傳統(tǒng)SpringMVC工程搭建步驟
搭建一個(gè)Spring + SpringMVC的工程虫碉,需要如下幾步:
引入Spring依賴,一般都會(huì)引入很多Spring的依賴须板,如spring-core兢卵、spring-context、spring-context-support甜奄、spring-webmvc 等;
配置web.xml, 要配置contextConfigLocation參數(shù)窃款,要配置Spring的監(jiān)聽器ContextLoaderListener,要配置SpringMVC的分發(fā);Servlet DispatcherServlet
配置spring-servlet.xml烟阐,配置SpringMVC對(duì)應(yīng)的內(nèi)部資源視圖識(shí)別器InternalResourceViewResolver的前綴紊扬、后綴等;
配置applicationContext.xml,配置Spring的核心配置文件;
配置完成后就可以寫Controller了檀葛,然后啟動(dòng)tomcat;
二:具體步驟
1. 引入Spring依賴
<properties>
? ? <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
? ? <log4j.version>2.5</log4j.version>
? ? <jstl.version>1.2</jstl.version>
? ? <spring.version>4.2.3.RELEASE</spring.version>
</properties>
<dependency>
? <groupId>javax.servlet</groupId>
? <artifactId>jstl</artifactId>
? <version>${jstl.version}</version>
</dependency>
<dependency>
? <groupId>org.springframework</groupId>
? <artifactId>spring-webmvc</artifactId>
? <version>${spring.version}</version>
</dependency>
<dependency>
? <groupId>org.springframework</groupId>
? <artifactId>spring-core</artifactId>
? <version>${spring.version}</version>
</dependency>
<dependency>
? <groupId>org.springframework</groupId>
? <artifactId>spring-context</artifactId>
? <version>${spring.version}</version>
</dependency>
<dependency>
? <groupId>org.springframework</groupId>
? <artifactId>spring-context-support</artifactId>
? <version>${spring.version}</version>
</dependency>
2. 配置web.xml
3. 配置WEB-INF/spring-servlet.xml
4. applicatonContext.xml
5. HelloWorldController
Spring缺點(diǎn): 配置繁瑣卵凑,各種XML勺卢、Annotation配置象对,如果出錯(cuò)了也很難找出原因;
創(chuàng)建Spring Boot 工程
Spring Boot的項(xiàng)目也是基于maven或者gradle的森书,有兩種方式:一種是通過IDE創(chuàng)建(ide也是基于官網(wǎng)的掺冠,只不過幫你自動(dòng)下載并使用ide幫你打開了)冠绢,一種是在官網(wǎng)上創(chuàng)建https://start.spring.io, github地址:https://github.com/spring-projects/spring-boot/
方式一:使用IntelliJ IDEA的Spring Initializer創(chuàng)建
在瀏覽器上直接輸入https://start.spring.io,只需要Dependencies中輸入Web選中即可(輸入Web就是集成SpringMVC功能萧朝,如果不需要可以什么都不輸入夏哭,后面如果需要集成SpringMVC的話也是超級(jí)very很簡單的),然后生成項(xiàng)目(即下載項(xiàng)目)何址,然后使用idea打開即可
這種方式還要跑到官網(wǎng)进胯,下載項(xiàng)目,然后再使用idea open項(xiàng)目,如果使用idea就不需要這些步驟希停,會(huì)自動(dòng)下載幫你打開署隘。可以看到傳統(tǒng)SpringMVC的集成方式和使用Spring Boot的搭建方式有什么不同磁餐,最大的特點(diǎn)就是快,沒有那么多的配置羞延,可以說是零配置,不像傳統(tǒng)SpringMVC項(xiàng)目入愧,要配置很多東西嗤谚,雖然這些東西都是從別的地方復(fù)制過來的,完成起來也需要幾分鐘時(shí)間旁赊,肯能還會(huì)出錯(cuò)椅野,都是一些體力活,創(chuàng)建一個(gè)Spring Boot項(xiàng)目只需要幾秒鐘就能搞定鳄橘,而且不會(huì)出錯(cuò)瘫怜,也不需要任何配置;Spring Boot項(xiàng)目就是為了解決Spring配置繁瑣的問題,最大化的實(shí)現(xiàn)約定大于配置(convention over configuration)鲸湃,以最快的速度來搭建項(xiàng)目,采用注解配置來替換xml配置;
兩種方式的區(qū)別:
傳統(tǒng)maven-archetype-webapp和Spring Boot項(xiàng)目結(jié)構(gòu)比較;
打包方式不同:
傳統(tǒng)web maven項(xiàng)目使用的是maven-archetype-webapp骨架,打包方式是使用的war包
Spring Boot的打包方式是使用的jar包
pom.xml中引入的依賴不同
傳統(tǒng)web項(xiàng)目是引入多個(gè)單獨(dú)的依賴
Spring Boot是引入的spring-boot-starter, 在spring boot中大部分依賴不需要指定version炸裆,因?yàn)榘姹咎?hào)已經(jīng)在spring-boot-starter-parent中定義過了
項(xiàng)目目錄結(jié)構(gòu)不同:
傳統(tǒng)的web項(xiàng)目中src/main/java下是沒有類的烹看,Spring Boot項(xiàng)目中有一個(gè)啟動(dòng)類(Project名稱+Application), 而且在src/test/java中也有一個(gè)測(cè)試類(Project名稱+ApplicationTest)
傳統(tǒng)的web項(xiàng)目有src/main/webapp/WEB-INF/web.xml, Spring Boot中沒有web.xml
傳統(tǒng)的web項(xiàng)目resources的目錄是空的,Spring Boot項(xiàng)目中resources中有static酱吝、templates目錄和一個(gè)配置文件application.properties
項(xiàng)目運(yùn)行方式不同
傳統(tǒng)web項(xiàng)目是啟動(dòng)tomcat
Spring Boot項(xiàng)目是直接運(yùn)行main方法或者直接運(yùn)行jar(java -jar <project>.jar);
Spring Boot的優(yōu)點(diǎn)
集成框架非常簡單土思,例如集成SpringMVC忆嗜,只需引入spring-boot-starter-web這一個(gè)依賴崎岂,也不需要做任何配置,這樣集成起來非扯沉В快速方便损合。Spring Boot支持很多常用的框架集成, 如 log、test嫁审、mybatis律适、nosql、mq捂贿、模板技術(shù)(thymeleaf、freemark)扣草、jpa颜屠、aop、actuator 等密浑, 具體請(qǐng)查看Starter POMs粗井、 Starter POMs
引入的依賴的數(shù)量很少,例如要引入測(cè)試依賴JUnit浇衬、Hamcrest、Mockito只需要引入spring-boot-starter-test這一個(gè)依賴就行了
自動(dòng)化配置,使用默認(rèn)配置梳星,再也不需要applicationContext.xml等配置文件了
支持自定義配置,可以配置在application.yml或者Config類中冤灾,如果自定義了就使用自定義的值,沒有自定義的則使用默認(rèn)的值
運(yùn)行更加簡單匿垄,直接使用java -jar 命令归粉,或者直接在IDE中運(yùn)行main方法;
Spring Boot的缺點(diǎn):
高度封裝,出現(xiàn)問題不易排查届榄,適合有開發(fā)驚訝的攻城獅倔喂,不適合初學(xué)者,初學(xué)者上手容易班缰,一旦出現(xiàn)問題就很難排查;將現(xiàn)有或傳統(tǒng)的Spring Framework項(xiàng)目轉(zhuǎn)換為Spring Boot應(yīng)用程序是一個(gè)非常困難和耗時(shí)的過程悼枢。它僅適用于全新Spring項(xiàng)目;資料比較少,文檔比較少;Spring Boot 正在快速發(fā)展给梅,可能版本變動(dòng)比較大;