SpringBoot深入講解單元測試與熱部署應(yīng)用
一、單元測試
開發(fā)中,每當(dāng)完成一個(gè)功能接口或業(yè)務(wù)方法的編寫后,通常都會借助單元測試驗(yàn)證該功能是否正確。Spring Boot對項(xiàng)目的單元測試提供了很好的支持,在使用時(shí),需要提前在項(xiàng)目的pom.xml文件中添加spring-boot-starter-test測試依賴啟動(dòng)器,可以通過相關(guān)注解實(shí)現(xiàn)單元測試
演示:
1.添加spring-boot-starter-test測試依賴啟動(dòng)器
在項(xiàng)目的pom.xml文件中添加spring-boot-starter-test測試依賴啟動(dòng)器,示例代碼如下 :
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
注意:使用Spring Initializr方式搭建的Spring Boot項(xiàng)目,會自動(dòng)加入spring-boot-starter-test測試依賴啟動(dòng)器,無需再手動(dòng)添加
2.編寫單元測試類和測試方法
使用Spring Initializr方式搭建的Spring Boot項(xiàng)目,會在src.test.java測試目錄下自動(dòng)創(chuàng)建與項(xiàng)目主程序啟動(dòng)類對應(yīng)的單元測試類
package com.lagou; import com.lagou.controller.HelloController; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringRunner; /** * SpringJUnit4ClassRunner.class:Spring運(yùn)行環(huán)境 * JUnit4.class:JUnit運(yùn)行環(huán)境 * SpringRunner.class:Spring Boot運(yùn)行環(huán)境 */ @RunWith(SpringRunner.class) //@RunWith:運(yùn)行器 @SpringBootTest //標(biāo)記為當(dāng)前類為SpringBoot測試類,加載項(xiàng)目的ApplicationContext上下文環(huán)境 class Springbootdemo2ApplicationTests { /** * 需求:調(diào)用HelloController的hello方法 */ @Autowired private HelloController helloController; @Test void contextLoads() { String result = helloController.hello(); System.out.println(result); } }
上述代碼中,先使用@Autowired注解注入了DemoController實(shí)例對象,然后在contextLoads()方法中調(diào)用了DemoController類中對應(yīng)的請求控制方法contextLoads(),并輸出打印結(jié)果。
二、熱部署
在開發(fā)過程中,通常會對一段業(yè)務(wù)代碼不斷地修改測試,在修改之后往往需要重啟服務(wù),有些服務(wù)需要加載很久才能啟動(dòng)成功,這種不必要的重復(fù)操作極大的降低了程序開發(fā)效率。為此,Spring Boot框架專門提供了進(jìn)行熱部署的依賴啟動(dòng)器,用于進(jìn)行項(xiàng)目熱部署,而無需手動(dòng)重啟項(xiàng)目 。
熱部署:在修改完代碼之后,不需要重新啟動(dòng)容器,就可以實(shí)現(xiàn)更新。
使用步驟:
1)添加SpringBoot的熱部署依賴啟動(dòng)器
2)開啟Idea的自動(dòng)編譯
3)開啟Idea的在項(xiàng)目運(yùn)行中自動(dòng)編譯的功能
演示:
1.添加spring-boot-devtools熱部署依賴啟動(dòng)器
在Spring Boot項(xiàng)目進(jìn)行熱部署測試之前,需要先在項(xiàng)目的pom.xml文件中添加spring-boot-devtools熱部署依賴啟動(dòng)器:
<!-- 引入熱部署依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
由于使用的是IDEA開發(fā)工具,添加熱部署依賴后可能沒有任何效果,接下來還需要針對IDEA開發(fā)工具進(jìn)行熱部署相關(guān)的功能設(shè)置。
2.IDEA工具熱部署設(shè)置
選擇IDEA工具界面的【File】->【Settings】選項(xiàng),打開Compiler面板設(shè)置頁面
選擇Build下的Compiler選項(xiàng),在右側(cè)勾選“Build project automatically”選項(xiàng)將項(xiàng)目設(shè)置為自動(dòng)編譯,單擊【Apply】→【OK】按鈕保存設(shè)置
在項(xiàng)目任意頁面中使用組合快捷鍵“Ctrl+Shift+Alt+/”打開Maintenance選項(xiàng)框,選中并打開Registry頁面,具體如圖1-17所示
列表中找到“compiler.automake.allow.when.app.running”,將該選項(xiàng)后的Value值勾選,用于指定IDEA工具在程序運(yùn)行過程中自動(dòng)編譯,最后單擊【Close】按鈕完成設(shè)置
3.熱部署效果測試
啟動(dòng)chapter01http://localhost:8080/hello
可以看出,瀏覽器輸出了“你好,Spring Boot”,說明項(xiàng)目熱部署配置成功。
到此這篇關(guān)于SpringBoot深入講解單元測試與熱部署應(yīng)用的文章就介紹到這了,更多相關(guān)SpringBoot單元測試與熱部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)戰(zhàn)之實(shí)現(xiàn)文件資料上傳并生成縮略圖
這篇文章主要介紹了通過Java實(shí)現(xiàn)文件資料的上傳并生成一個(gè)縮略圖,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java有一定的幫助,感興趣的小伙伴可以了解一下2021-12-12SpringBoot中的yaml語法及靜態(tài)資源訪問問題
這篇文章主要介紹了SpringBoot中的yaml語法及靜態(tài)資源訪問問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07Java實(shí)現(xiàn)PDF轉(zhuǎn)HTML/Word/Excel/PPT/PNG的示例代碼
這篇文章主要為大家介紹了如何利用Java語言是PDF轉(zhuǎn)HTML、Word、Excel、PPT和PNG功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-05-05Struts2之Action接收請求參數(shù)和攔截器詳解
這篇文章主要介紹了Struts2之Action接收請求參數(shù)和攔截器詳解,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05java方法重載和參數(shù)類型自動(dòng)提升方式
這篇文章主要介紹了java方法重載和參數(shù)類型自動(dòng)提升方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02工廠模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了工廠模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)資料,需要的朋友可以參考下2017-08-08Java實(shí)現(xiàn)文件分割和文件合并實(shí)例
本篇文章主要介紹了Java實(shí)現(xiàn)文件分割和文件合并實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08