1. 程式人生 > 其它 >SpringBoot學習入門之Hello專案的構建、單元測試和熱部署等(配圖文,配置資訊詳解,附案例原始碼)

SpringBoot學習入門之Hello專案的構建、單元測試和熱部署等(配圖文,配置資訊詳解,附案例原始碼)

前言:

 本文章主要是個人在學習SpringBoot框架時做的一些準備,參考老師講解進行完善對SpringBoot構建簡單專案的學習彙集成本篇文章,作為自己對SpringBoot框架的總結與筆記。

你將會從此篇文章瞭解到以下四點內容:

  1.  SpringBoot框架簡介
  2. Hello SpringBoot專案的構建
  3. 單元測試與熱部署
  4.  Spring Boot 原理分析和實現

一、SpringBoot框架簡介

  • 隨著網際網路的興起,Spring勢如破竹,佔據著Java領域輕量級開發的王者地位。
  • 隨著Java語言的發展以及市場開發的需求,Spring推陳出新,推出了全新的Spring Boot框架。
  • Spring Boot是Spring家族的一個子專案,其設計初衷是為了簡化Spring配置,從而可以輕鬆構建獨立執行的程式,並極大提高開發效率。

springboot官網:Spring Boot

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。

  • Spring Boot是基於Spring框架開發的全新框架,其設計目的是簡化新Spring應用的初始化搭建和開發過程。
  • Spring Boot整合了許多框架和第三方庫配置,幾乎可以達到“開箱即用”

特點:

SpringBoot基於Spring4.0設計,不僅繼承了Spring框架原有的優秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發過程。另外SpringBoot通過整合大量的框架使得依賴包的版本衝突,以及引用的不穩定性等問題得到了很好的解決。

SpringBoot所具備的特徵有:
  1. 可以建立獨立的Spring應用程式,並且基於其Maven或Gradle外掛,可以建立可執行的JARs和WARs;
  2. 內嵌Tomcat或Jetty等Servlet容器;
  3. 提供自動配置的“starter”專案物件模型(POMS)以簡化Maven配置;
  4. 儘可能自動配置Spring容器;
  5. 提供準備好的特性,如指標、健康檢查和外部化配置;
  6. 絕對沒有程式碼生成,不需要XML配置。

二、Hello SpringBoot專案的構建

1.專案構建前提

  • JDK 1.8(及以上版本)
  • Apache Maven 3.6.0+
  • IntelliJ IDEA Ultimate旗艦版

PS:如需JDK、Maven依賴包和idea工具安裝包百度網盤獲取(地址如下)

連結:https://pan.baidu.com/s/1bCkqDovbPL5npyEDfKLoWQ?pwd=1234 
提取碼:1234

2.認識idea開發工具

2.1 idea歡迎頁面

2.2初始化Maven設定

(1)單擊【Configure】→【Project Defaults】→【Settings】進入設定Maven介面

(2)初始化Maven設定

2.3初始化JDK設定

(1)【Configure】→【Project Defaults】→【Project Structure】進入JDK設定頁

(2)在介面左側選擇【Project Settings】→【Project】選項(點選Edit選擇JDK的安裝路徑)

3.SpringBoot專案的建立

SpringBoot專案的建立有兩種方式

  • 方法一:使用Maven建立Spring Boot專案
  • 方法二:使用Spring Initializr建立SpringBoot專案

3.1使用Maven方式構建Spring Boot專案

搭建步驟:

(1)建立Maven專案

然後Next

再點選Fnish

(2) 在pom.xml中新增Spring Boot相關依賴

 1 <!-- 選擇的Web模組依賴啟動器、統一父類專案管理 -->
 2         <dependency>
 3             <groupId>org.springframework.boot</groupId>
 4             <artifactId>spring-boot-starter-web</artifactId>
 5         </dependency>
 6 
 7         <!-- 測試類依賴、引入Web場景依賴啟動器 -->
 8         <dependency>
 9             <groupId>org.springframework.boot</groupId>
10             <artifactId>spring-boot-starter-test</artifactId>
11             <scope>test</scope>
12         </dependency>

(3)編寫主程式啟動類

1 @SpringBootApplication 
2 public class ManualChapter01Application {
3 public static void main(String[] args){
4        SpringApplication.run(ManualChapter01Application.class,args);
5     }
6  }

 (4)建立一個用於Web訪問的Controller

1 @RestController     //  該註解為組合註解,等同於Spring中@Controller+@ResponseBody註解
2 public class HelloController {
3     @GetMapping("/hello")  // 該註解等同於Spring框架中@RequestMapping(RequestMethod.GET)註解
4     public String hello(){
5         return "hello Spring Boot";
6     }
7 }

(5)執行專案

啟動專案,在瀏覽器上訪問http://localhost:8080/hello

 3.2使用Spring Initializr方式構建Spring Boot專案

搭建步驟:

(1)建立Spring Boot專案

然後Next

建立好的專案結構如下圖所示:

(2)建立一個用於Web訪問的Controller

1 @RestController   
2 public class HelloController {
3 @GetMapping("/hello")
4    public String hello(){
5         return "hello Spring Boot";
6     }
7 }

(3)執行專案

啟動專案,在瀏覽器上訪問http://localhost:8080/hello

三、單元測試與熱部署

1.單元測試

單元測試(unit testing),是指對軟體中的最小可測試單元進行檢查和驗證。對於單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如C語言中單元指一個函式,Java裡單元指一個類,圖形化的軟體中可以指一個視窗或一個選單等。總的來說,單元就是人為規定的最小的被測功能模組。單元測試是在軟體開發過程中要進行的最低級別的測試活動,軟體的獨立單元將在與程式的其他部分相隔離的情況下進行測試。

搭建步驟:

1.1在pom檔案中新增spring-boot-starter-test測試啟動器

1 <!-- 引入熱部署依賴 -->
2 <dependency>
3     <groupId>org.springframework.boot</groupId>
4     <artifactId>spring-boot-starter-test</artifactId>
5     <scope>test</scope>
6 </dependency>

1.2編寫單元測試類

1 @RunWith(SpringRunner.class)   // 測試啟動器,並載入Spring Boot測試註解
2 @SpringBootTest       // 標記為Spring Boot單元測試類,並載入專案的ApplicationContext上下文環境
3 public class Chapter01ApplicationTests {
4 
5     // 自動建立的單元測試方法示例
6     @Test
7     public void contextLoads() {
8     }
9 }

1.3編寫單元測試方法

1  @Autowired//注入HelloController例項物件
2     private HelloController helloController;
3     @Test
4     public void helloControllerTest() {
5         String hello = helloController.hello();
6         System.out.println(hello);
7     }

1.4執行結果

執行測試方法helloControllerTest(),控制檯輸出如圖。

2.熱部署

所謂熱部署,就是在應用正在執行的時候升級軟體,卻不需要重新啟動應用。 對於Java應用程式來說,熱部署就是在執行時更新Java類檔案。在基於Java的應用伺服器實現熱部署的過程中,類裝入器扮演著重要的角色。大多數基於Java的應用伺服器,包括EJB伺服器和Servlet容器,都支援熱部署。類裝入器不能重新裝入一個已經裝入的類,但只要使用一個新的類裝入器例項,就可以將類再次裝入一個正在執行的應用程式。

搭建步驟:

2.1在pom檔案中新增spring-boot-devtools熱部署依賴

1  <!-- 引入熱部署依賴 -->
2 <dependency>                
3    <groupId>org.springframework.boot</groupId>
4    <artifactId>spring-boot-devtools</artifactId>
5 </dependency>

2.2IDEA中熱部署設定

 (1)選擇【FileSettings】選項,開啟Compiler面板設定頁

設定為自動編譯

(2)使用快捷鍵“Ctrl+Shift+Alt+/”開啟Maintenance選項框選中並Registry頁面

指定IDEA工具在程式執行過程中自動編譯

2.3熱部署測試

(1)啟動chapter01專案,通過瀏覽器訪問http://localhost:8080/hello

(2)修改類HelloController中的請求處理方法hello()的返回值,重新整理瀏覽器。

四、Spring Boot 原理分析

1.Spring Boot 依賴管理

Spring Boot為完成不同需求的Spring應用構建,提供了多種不同的依賴管理模板,每種模板均為一系列已完成的依賴的管理。例如在我們的入門程式中,需要構建web專案,我們只需新增spring-boot-starter-web的依賴即可,它會將你所需的其他依賴匯入到你的工程中。官方稱之為“物料清單”(Bills of Materials),也因此在使用時我們需要構建工具的支援,如Maven或者Gradle等。

1.1 spring-boot-starter-parent依賴

1 <!-- Spring Boot父專案依賴管理 -->
2 <parent>
3     <groupId>org.springframework.boot</groupId>
4     <artifactId>spring-boot-starter-parent</artifactId>
5     <version>2.1.3.RELEASE</version>
6     <relativePath/>
7 </parent>

注:spring-boot-starter-parent是通過<properties>標籤對一些常用技術框架的依賴檔案進行了統一版本號管理。

1.2 spring-boot-starter-web依賴

1 <dependency>
2    <groupId>org.springframework.boot</groupId>
3     <artifactId>spring-boot-starter-web</artifactId>
4 </dependency>

注:spring-boot-starter-web依賴啟動器的主要作用是提供Web開發場景所需的底層所有依賴檔案,它對Web開發場景所需的依賴檔案進行了統一管理。

2.Spring Boot自動配置

Spring Boot會根據類路徑中的jar包、類,為jar包裡的類自動配置,這樣可以極大的減少配置的數量。簡單點說就是它會根據定義在classpath下的類,自動的給你生成一些Bean,並載入到Spring的Context中。自動配置充分的利用了spring 4.0的條件化配置特性,能夠自動配置特定的Spring bean,用來啟動某項特性。

2.1 Spring Boot自動配置的實現

  • Spring Boot應用的啟動入口是@SpringBootApplication註解標註類中的main()方法;
  • @SpringBootApplication能夠掃描Spring元件並自動配置Spring Boot。
  • @SpringBootApplication註解是一個組合註解,包含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三個核心註解

2.2 Spring Boot 的執行流程主要分為兩步:

(1)初始化Spring Application例項

(2)初始化Spring Boot 專案啟動

總結:

看完本篇文章,你應該學會了自主搭建SpringBoot專案,認識了此框架的單元測試和熱部署等配置資訊。

以上便是本篇文章所寫的關於SpringBoot框架入門的所有內容了,碼字不易,對你有幫助的話,請給個三連(關注、點贊、收藏)有問題可評論區留言討論。

後期會完善SpringBoot框架進階的相關知識,如有幫助的話,敬請關注樓主後續發文(不定時發文)

轉載時請註明出處連結

 

 

 參考文件:

 1.百度百科:https://www.baidu.com/

2.傳智播客-黑馬程式教程:http://stu.ityxb.com/