您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何正確的使用Spring Boot,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
環境要求
采用SpringBoot最新版本2.1.3來講解。我們使用Maven項目管理工具來管理項目,電腦上要預先安裝好Maven3.3+(SpringBoot要求)版本。JDK當然也少不了,但需要JDK8及以上版本。
創建項目方式一
通過官網提供的Spring Initializr來創建項目。訪問官方網址:https://start.spring.io/ 。顯示內容如下:
簡單了解一下相應的參數選擇:
Project:選擇項目構建的工具,采用默認的Maven;
Language:選擇構建項目的語言,采用默認的Java;
Spring Boot:選擇使用的SpringBoot的版本信息,采用最新版本2.1.3;
Project Metadata:設置項目的元數據,主要就是設置Maven相關的配置;Group,對應Maven中的GroupId,Artifact對應Maven中的ArtifactId。
打開More options會看到另外一些默認的配置:
Packaging:指定打包的模式,默認采用Jar包模式,即使用java -jar啟動即可,如果需要部署到單獨的tomcat或其他web容器,則可選擇war包。
Java Version:SpringBoot2.13默認支持最低JDK為8。
我們前面提到的starters的選擇就是在Dependencies中設置,在沒有輸入任何內容的時候,能夠看到該輸入欄目有對應的提示信息。當輸入web時,會動態匹配與web相關的依賴,點擊“?”添加即可。這里選擇web的最小化配置。
當完成選擇,點擊“Generate Project”即可自動下載創建好的項目代碼。解壓之后,會看到是一個標準的Maven項目,使用idea等IDE引入Maven項目,自動加載依賴即可,這里不再贅述。
創建項目方式二
第二種創建方式就是直接使用IDEA進行創建,當然前提是IDEA中已經安裝了Spring Boot相關的插件——Spring Boot,如下圖所示。
像創建其他項目一樣,File,New,Project…,即可進入創建項目頁面,如下圖:
選擇Spring Initializr,展示右邊基礎配置項。我們會發現,其實此插件進行創建時默認也是調用官方提供的網址進行創建。選擇JDK8,點擊下一步。
像第一種方式一樣,填寫相關參數信息,這里就不再重復描述。點擊“Next”,進入選擇依賴界面。點擊“Web”,同時勾選中間部分出現的“Web”。能夠看到下面出現了“Servlet web application with Spring MVC and Tomcat”,因此,項目已經具有了SpringMVC框架和Tomcat內置web容器了。
當然,如果項目需要,也可以選擇添加更多相關依賴。完成依賴選擇之后,點擊“Next”,指定項目的名稱和位置,點擊“Finish”,等待項目構建完成即可。根據網絡速度,等待時間有所不同,當添加依賴jar包一直卡著不動時,可考慮關閉項目重新打開,手動“Reimport”一下Maven依賴。
項目目錄結構
項目完成創建之后,來看一下目錄結構:
項目目錄結構簡單明了,就是一個普通的Maven項目。src/main/java目錄下為項目的啟動程序和后續需要編寫的業務代碼。resources目錄存放配置文件和資源文件,如web項目的js、css、image、jsp等。test目錄存放單元測試類。
配置文件
在常規spring構建的web項目中的配置文件,比如spring-content.xml、web.xml等配置文件都不見了。能夠看到的只有application.properties,它默認內置了一些配置,可以通過IDEA的提示功能,快速配置相應的參數,比如在文件內入手server,則會給出如下提示:
通過提示可以看出,內嵌tomcat默認的端口為8080。可以通過server.port=xx,重新指定端口號。
項目依賴
在之前的Spring項目搭建我們需要了解每個功能都使用了Spring的哪些核心依賴包,然后逐一引入。使用Spring Boot便無需關注那么多。來看一下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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
看到pom里面的內容是不是感覺清爽到極致了。是的,忽略掉Maven的元數據配置,其實我們僅僅引入了三部分的內容:
parent元素,引入了spring-boot-starter-parent的依賴管理,主要提供了整體版本控制和打包等內容;
dependencies元素中,引入了spring-boot-starter-web這個starter和單元測試的starter。
build元素中,引入了一個構建項目的maven插件。
而此刻,如果打開項目的jar包依賴,會看到已經引入了幾十個功能相關的jar包了。
HelloWorld
編寫一個可通過瀏覽器訪問的hello web程序。在com.example.demo包下創建一個controller的包,并創建HelloWorldController類。
package com.example.demo.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author zzs */ @RestController public class HelloWorldController { @RequestMapping public String hello() { return "hello world!"; } }
像我們使用spring mvc一樣,在controller中實現上面的代碼。運行DemoApplication中的main方法啟動項目,在瀏覽器輸入:http://localhost:8080/hello,頁面顯示出”hello world!”,一個簡單的rest接口請求便完成了。
單元測試
在DemoApplicationTests中寫一段簡單的單元測試,代碼如下:
package com.example.demo; import com.example.demo.controller.HelloWorldController; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import static org.hamcrest.core.IsEqual.equalTo; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @RunWith(SpringRunner.class) @SpringBootTest public class DemoApplicationTests { private MockMvc mockMvc; @Before public void init() { mockMvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build(); } @Test public void testHello() throws Exception { mockMvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(content().string(equalTo("hello world!"))); } }
看完上述內容,你們對如何正確的使用Spring Boot有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。