SpringBoot學習入門之Hello專案的構建、單元測試和熱部署等(配圖文,配置資訊詳解,附案例原始碼)
前言:
本文章主要是個人在學習SpringBoot框架時做的一些準備,參考老師講解進行完善對SpringBoot構建簡單專案的學習彙集成本篇文章,作為自己對SpringBoot框架的總結與筆記。
你將會從此篇文章瞭解到以下四點內容:
- SpringBoot框架簡介
- Hello SpringBoot專案的構建
- 單元測試與熱部署
- 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所具備的特徵有:- 可以建立獨立的Spring應用程式,並且基於其Maven或Gradle外掛,可以建立可執行的JARs和WARs;
- 內嵌Tomcat或Jetty等Servlet容器;
- 提供自動配置的“starter”專案物件模型(POMS)以簡化Maven配置;
- 儘可能自動配置Spring容器;
- 提供準備好的特性,如指標、健康檢查和外部化配置;
- 絕對沒有程式碼生成,不需要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)選擇【File】→【Settings】選項,開啟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/