1.SpringBoot介紹:
根據官方SpringBoot文檔描述,BUILD ANYTHING WITH SPRING BOOT (用SPRING BOOT構建任何東西,很牛X呀!),下面是官方文檔介紹(文檔地址,感興趣可以看看:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-documentation):
-
- 啟動項目在秒范圍內;
- 構建任何東西——REST API、WebSocket、Web、流媒體、任務等等;
- 簡化的安全架構;
- 豐富的關系型數據庫和非關系型數據庫的支持;
- 嵌入式的運行環境支持,Tomcat,Jetty和Undertow;
- 開發人員的福利,熱部署等;
- 僅僅是工作上的依賴;
- 可生產性,跟蹤,監控等特性;
- 支持你常用的IDE工具;、
2.SpringBoot運行環境:
2.1 JDK環境:1.8+;
2.2 項目構建工具:maven:3.2+;
gradle:與4兼容;
2.3 Servlet容器:
Name | Servlet Version |
---|---|
Tomcat 8.5 |
3.1 |
Jetty 9.4 |
3.1 |
Undertow 1.4 |
3.1 |
3.SpringBoot初體驗(HelloWorld):
3.1 引入Maven依賴庫:

1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.cn</groupId> 8 <artifactId>spring-boot-hello</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <properties> 12 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 13 <java.version>1.8</java.version> 14 </properties> 15 16 <parent> 17 <groupId>org.springframework.boot</groupId> 18 <artifactId>spring-boot-dependencies</artifactId> 19 <version>2.0.1.RELEASE</version> 20 </parent> 21 22 <dependencies> 23 <dependency> 24 <groupId>org.springframework.boot</groupId> 25 <artifactId>spring-boot-starter-web</artifactId> 26 </dependency> 27 </dependencies> 28 </project>
3.2 創建啟動類:

1 package com.cn; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 6 /** 7 * @program: spring-boot-example 8 * @description: 啟動類 9 * @author: 10 * @create: 2018-04-28 10:42 11 **/ 12 @SpringBootApplication 13 public class HelloApplication { 14 15 /** 16 * @Description: 17 * @Param: [Class] 配置類源類 18 * @Param: [args] 應用啟動參數 19 * @return: void 20 * @Author: 21 * @Date: 2018/4/28 22 */ 23 public static void main(String[] args) { 24 SpringApplication.run(HelloApplication.class, args); 25 } 26 27 }
3.3 創建Controller訪問對接口:

1 package com.cn.controller; 2 3 import org.springframework.web.bind.annotation.RequestMapping; 4 import org.springframework.web.bind.annotation.RestController; 5 6 /** 7 * @program: spring-boot-example 8 * @description: 控制層:helllocontroller 9 * @author: 10 * @create: 2018-04-28 10:49 11 **/ 12 13 @RestController 14 public class HelloController { 15 16 /** 17 * @Description: 18 * @Param: 19 * @return: 20 * @Author: 21 * @Adress: http://localhost:8080/hello 22 * @Date: 2018/4/28 23 */ 24 @RequestMapping("hello") 25 public String hello() { 26 return "Hello World!"; 27 } 28 29 }
注意:HelloController.java文件要在啟動類的本包或子包中,才可以被啟動類掃描到,詳情請看:http://www.cnblogs.com/lfalex0831/p/8922468.html,SpringBoot默認掃描的范圍為本包及子包;
3.4 啟動啟動類,打開瀏覽器,輸入 http://localhost:8080/hello 訪問:
返回HelloWorld到頁面;
注:
-
-
@SpringBootApplication:SpringBoot的啟動類注解,查看源碼發現它其實是@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan三個的注解集(源碼之后會有進階篇,我認為學一個東西先學會它的應用然后再學習它的本質);
-
SpringApplication.run(HelloApplication.class, args); 真正的啟動代碼,會做一些初始化操作,啟動內置的監聽器,創鍵environment對象並加載配置項等;
-
@RestController:還是查看源碼發現,它是@Controller,@ResponseBody的集合,它Spring4之后新加入的注解,原來返回json需要@ResponseBody和@Controller配合,現在一步搞定;
-
@RequestMapping("hello") 請求映射不多說了;
-
4.創建可執行JAR
我們也可以通過插件創建一個在生產環境中運行的可執行jar文件來完成我們的示例。
首先引入依賴:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
在項目目錄下打開cmd命令,使用 mvn package 命令進行打包,如下:
如果想查看打包后的jar文件內部目錄,可用命令 jar tvf target/myproject-0.0.1-SNAPSHOT.jar 查看目錄結構;
使用 java -jar target\spring-boot-hello-1.0-SNAPSHOT.jar 啟動應用如下:
測試結果如3.4所演示的;
如果在啟動時遇見沒有主清單目錄的錯誤的話,請看:http://www.cnblogs.com/lfalex0831/p/8967428.html
完整示例:https://gitee.com/lfalex/spring-boot-example
參考官方文檔:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-documentation