使用Spring Boot搭建Java web項目及開發(fā)過程圖文詳解
一、Spring Boot簡介
Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。SpringMVC是非常偉大的框架,開源,發(fā)展迅速。優(yōu)秀的設(shè)計必然會劃分、解耦。所以,spring有很多子項目,比如core、context、bean、mvc等。這對知根底的人來說很簡單明了,然而springmvc就是為了傻瓜式的操作而發(fā)明的。對于初學(xué)springmvc的人來說,想要入手就開發(fā)需要拷貝一連串的dependency而不知道這個是干嘛,不知道是不是少了依賴。像我剛接觸springmvc的時候到處百度教程而發(fā)現(xiàn)各有不同,于是復(fù)制了一個又一個代碼卻不能自己設(shè)置,根本原因是不了解各個依賴的包。
Spring-Boot 正是為了解決繁復(fù)的代碼配置而產(chǎn)生的。Spring-Boot 也是基于java-base 開發(fā)的代碼,及不用xml文件配置,所有代碼都由java來完成。還可以加入Groovy的動態(tài)語言執(zhí)行。
本文是一個Spring Boot入門級的helloworld程序。
二、準(zhǔn)備工作
Java JDK1.7(安裝過程省略) maven:apache-maven-3.3.9(安裝過程省略) eclipse(安裝過程省略) spring-boot-1.5.1三、用Spring Boot新建web項目
新建一個maven工程(注意,不要勾選create from archytype,雖然它會幫你創(chuàng)建骨架,但是會從外網(wǎng)下載一些東西,很慢,導(dǎo)致會卡在那,下載東西的時間,還不如手工創(chuàng)建一下目錄,分分鐘搞定)。
然后輸入相應(yīng)的groupId,artifactId。
項目創(chuàng)建過程就省略了。項目建好后,目錄結(jié)構(gòu)是這樣的:
打開pom.xml文件,添加<parent></parent>節(jié)點:
<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>myproject</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <!-- Additional lines to be added here... --></project>
上面沒有添加任何依賴,但仍然可以build。使用命令行:mvn package 對項目進行打包。
注意,是當(dāng)前項目路徑E:workspace-springBootzsqSpringBoot>下執(zhí)行命令。當(dāng)然,你也可以使用IDE,不過使用文本編輯器會讓我們對它更理解。
現(xiàn)在需要添加依賴 -- 其實就是把依賴的jar添加到buildpath。由于我們已經(jīng)繼承了 spring-boot-starter-parent ,而 spring-boot-starter-parent 又提供了 dependency-management ,所以我們可以忽略被選中依賴的版本。
在添加依賴之前,我們先看一下現(xiàn)在已有什么:mvn dependency:tree。該命令會打印一個當(dāng)前項目的依賴樹。
結(jié)果表明,當(dāng)前沒有任何依賴。 如下:
OK,現(xiàn)在我們添加spring-web項目依賴:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency></dependencies>
現(xiàn)在再次查看一下依賴樹。
可以看出,spring-boot-starter-web 包含了很多內(nèi)容,spring-webmvc、spring-web、jackson、validation、tomcat、starter。
好,接下來修改pom.xml,我直接貼上我的pom.xml完整配置信息:
<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>com.zsq.msb</groupId> <artifactId>zsqSpringBoot</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- Maven POM文件繼承 spring-boot-starter-parent --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.RELEASE</version> </parent> <!-- 為一個web應(yīng)用程序添加典型的依賴關(guān)系, Starter POMs依賴 --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!-- Spring Boot也提供了一個可選的 Maven Plugin來創(chuàng)建可執(zhí)行的jars --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
可以看出,繼承了spring-boot-starter-parent,依賴了junit,spring-boot-starter-web,spring-boot-maven-plugin。以前我們在spring的配置,spring-boot都會按照默認配置,幫我們弄好。(你可以像使用標(biāo)準(zhǔn)的Java庫文件一樣使用Spring Boot。簡單的將需要的 spring-boot-*.jar 添加到classpath即可。)
Spring Boot不要求任何特殊的工具集成,所以可以使用任何IDE,甚至文本編輯器。只是,仍然建議使用build工具:Maven 或 Gradle。
Spring Boot依賴使用 org.springframework.boot groupId 。通常,讓你的Maven POM文件繼承 spring-boot-starter-parent,并聲明一個或多個 Starter POMs依賴即可。Spring Boot也提供了一個可選的 Maven Plugin來創(chuàng)建可執(zhí)行的jars。
需要注意的是, spring-boot-starter-parent 是一個非常好的方法,但并不適用于所有情況。有時你需要繼承其他的POM,或者你不喜歡默認的設(shè)置,可以使用另外的方式。
完成后下載了相關(guān)的額jar包,如下圖:
現(xiàn)在就可以開始寫代碼了。 由于Maven默認編譯路徑為 src/main/java 下面的源碼,所以,默認設(shè)置下,需要創(chuàng)建這些文件夾。然后,編寫文件 src/main/java/Example.java:
package com.zsq.msb.dexam; import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController; @Controller@EnableAutoConfigurationpublic class Example { @RequestMapping(value ='/home', method = RequestMethod.GET) @ResponseBody public String home(){ return '你好,Spring Boot'; } public static void main(String[] args){ SpringApplication.run(Example.class, args); }}
這里我們只需要關(guān)心 @EnableAutoConfiguration 即可。這個注解是讓Spring Boot猜測 你想怎么配置Spring,但實際上,它是根據(jù)你添加到classpath中的依賴來判斷的。
注意,自動配置 可以配合 Starter POMs 一起工作,但二者不是捆綁到一起的。你仍然可以將Starter POMs中的依賴單獨揀出使用,Spring Boot還是會自動配置。
現(xiàn)在可以右鍵運行main方法,效果如下:
當(dāng)你看到這樣的運行后的效果,說明配置是成功的,這樣也就相當(dāng)于項目已經(jīng)啟動了。(當(dāng)然,由于我們使用了 spring-boot-starter-parent POM,所以可以使用 mvn spring-boot:run來啟動項目(根路徑)。)
注意:在啟動之前,先使用Maven來install(打包),你可以在/target目錄下看到zsqSpringBoot-0.0.1-SNAPSHOT.jar,大約10 Mb左右。可以通過 jar tvf target/zsqSpringBoot-0.0.1-SNAPSHOT.jar來查看其中的內(nèi)容。此外,在/target目錄下,還可以看到 zsqSpringBoot-0.0.1-SNAPSHOT.jar.original,這是Maven打包出來的。也可以使用命令來啟動項目,在項目文件下執(zhí)行命令如:java -jar target/zsqSpringBoot-0.0.1-SNAPSHOT.jar。
使用命令啟動項目效果如下:
執(zhí)行 ctrl+c,退出。
另外,查看日志可以發(fā)現(xiàn)默認使用的是tomcat,端口綁定在8080:
現(xiàn)在讓我們來訪問:http://localhost:8080/home。如下圖:
就可以看到我們代碼中輸出的字樣:“你好,Spring Boot”了。
回首這個過程,是不是相比于以前快速了許多呢!!
源碼下載地址:http://xiazai.jb51.net/202006/yuanma/zsqSpringBoot_jb51.rar
總結(jié)
到此這篇關(guān)于使用Spring Boot搭建Java web項目及開發(fā)過程圖文詳解的文章就介紹到這了,更多相關(guān)spring boot 搭建javaweb項目內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. moment轉(zhuǎn)化時間戳出現(xiàn)Invalid Date的問題及解決2. python爬蟲實戰(zhàn)之制作屬于自己的一個IP代理模塊3. 使用JSP技術(shù)實現(xiàn)一個簡單的在線測試系統(tǒng)的實例詳解4. 為什么你的android代碼寫得這么亂5. Android的線程和線程池6. Python中內(nèi)建模塊collections如何使用7. Python中matplotlib如何改變畫圖的字體8. python實現(xiàn)坦克大戰(zhàn)9. 開發(fā)效率翻倍的Web API使用技巧10. 跟我學(xué)XSL(一)第1/5頁
