Spring Boot 系列文章:《Spring Boot 那些事》
一、Spring Boot 自述
世界上最好的文檔來源自官方的《Spring Boot Reference Guide》,是這樣介紹的:
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”...Most Spring Boot applications need very little Spring configuration.
Spring Boot(英文中是“引導”的意思),是用來簡化Spring應用的搭建到開發的過程。應用開箱即用,只要通過 “just run”(可能是 java -jar 或 tomcat 或 maven插件run 或 shell腳本),就可以啓動項目。二者,Spring Boot 只要很少的Spring配置文件(例如那些xml,property)。
因爲“習慣優先於配置”的原則,使得Spring Boot在快速開發應用和微服務架構實踐中得到廣泛應用。
Javaer裝好JDK環境和Maven工具就可以開始學習Boot了~
二、HelloWorld實戰詳解
首先得有個maven基礎項目,可以直接使用Maven骨架工程生成Maven骨架Web項目,即man archetype:generate命令:
1 | mvn archetype:generate -DgroupId=springboot -DartifactId=springboot-helloworld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode= false |
2.1 pom.xml配置
代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <? 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 >springboot</ groupId > < artifactId >springboot-helloworld</ artifactId > < version >0.0.1-SNAPSHOT</ version > < name >springboot-helloworld :: HelloWorld Demo</ name > <!-- Spring Boot 啓動父依賴 --> < parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > < version >1.3.3.RELEASE</ version > </ parent > < dependencies > <!-- Spring Boot web依賴 --> < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > <!-- Junit --> < dependency > < groupId >junit</ groupId > < artifactId >junit</ artifactId > < version >4.12</ version > </ dependency > </ dependencies > </ project > |
只要加入一個 Spring Boot 啓動父依賴即可。
2.2 Controller層
HelloWorldController的代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | /** * Spring Boot HelloWorld案例 * * Created by bysocket on 16/4/26. */ @RestController public class HelloWorldController { @RequestMapping ( "/" ) public String sayHello() { return "Hello,World!" ; } } |
@RestController和@RequestMapping註解是來自SpringMVC的註解,它們不是SpringBoot的特定部分。
1. @RestController:提供實現了REST API,可以服務JSON,XML或者其他。這裏是以String的形式渲染出結果。
2. @RequestMapping:提供路由信息,"/“路徑的HTTP Request都會被映射到sayHello方法進行處理。
具體參考,世界上最好的文檔來源自官方的《Spring Framework Document》
2.3 啓動應用類
和第一段描述一樣,開箱即用。如下面Application類:
1 2 3 4 5 6 7 8 9 10 11 12 | /** * Spring Boot應用啓動類 * * Created by bysocket on 16/4/26. */ @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application. class ,args); } } |
1. @SpringBootApplication:Spring Boot 應用的標識
2. Application很簡單,一個main函數作爲主入口。SpringApplication引導應用,並將Application本身作爲參數傳遞給run方法。具體run方法會啓動嵌入式的Tomcat並初始化Spring環境及其各Spring組件。
2.4 Controller層測試類
一個好的程序,不能缺少好的UT。針對HelloWorldController的UT如下:
1 2 3 4 5 6 7 8 9 10 11 12 | /** * Spring Boot HelloWorldController 測試 - {@link HelloWorldController} * * Created by bysocket on 16/4/26. */ public class HelloWorldControllerTest { @Test public void testSayHello() { assertEquals( "Hello,World!" , new HelloWorldController().sayHello()); } } |
三、運行
Just Run的宗旨,運行很簡單,直接右鍵Run運行Application類。同樣你也可以Debug Run。可以在控制檯中看到:
1 2 | Tomcat started on port(s): 8080 (http) Started Application in 5.986 seconds (JVM running for 7.398) |
然後訪問 http://localhost:8080/ ,即可在頁面中看到Spring Boot對你 say hello:
1 | Hello,World! |
四、小結
1. Spring Boot pom配置
2. Spring Boot 啓動及原理
3. 對應代碼分享在 Github 主頁