最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合Junit與Mybatis實戰(zhàn)指南

 更新時間:2026年02月25日 09:50:14   作者:北極的代碼  
這篇文章給大家介紹SpringBoot整合Junit與Mybatis實戰(zhàn)指南,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

前言:前面我們學習完了SpringBoot的相關(guān)基礎(chǔ)知識,以及多環(huán)境配置等等,下面我們基于SpringBoot,如何提高開發(fā)的效率,注重于代碼的業(yè)務邏輯,整合Junit和Mybatis。整合就是把復雜的技術(shù)細節(jié)封裝起來,讓我們能專注于業(yè)務本身。就像我們不需要懂發(fā)動機原理也能開車一樣。

整合Junit:

實際上我們僅僅是創(chuàng)建了一個SpringBoot項目,然后在測試類中測試。這樣看起來似乎沒有整合,正所謂“沒有所謂的歲月靜好,只是有人在為你負重前行”為我們負重前行的實際上是SpringBoot的自動配置功能。

spring-boot-starter-test

當我們創(chuàng)建 Spring Boot 項目時(無論是通過 start.spring.io 還是 IDEA 的 Spring Initializr),pom.xml 中會自動添加這個依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

這個start里面包含了什么:

<!-- spring-boot-starter-test 內(nèi)部包含了: -->
<dependencies>
    <!-- 1. JUnit 5 (Jupiter) - 測試框架本身 -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
    </dependency>
    <!-- 2. Spring 測試支持 - 讓JUnit能和Spring整合 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
    </dependency>
    <!-- 3. Spring Boot 測試支持 - @SpringBootTest等注解 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-test</artifactId>
    </dependency>
    <!-- 4. Mockito - 模擬對象 -->
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
    </dependency>
    <!-- 5. AssertJ - 流暢斷言 -->
    <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
    </dependency>
    <!-- 還有其他測試工具... -->
</dependencies>

簡單理解:

spring-boot-starter-test就相當于一個火鍋全家桶,里面包含了所有的配料,菜,鍋,我們只需要使用即可,而不需要手動的去下載安裝這些配置。

創(chuàng)建SpringBoot的實際過程:

1.我們先創(chuàng)建一個項目,選擇Spring Initializr,選擇依賴

2.IDEA在背后,在pom文件中自動的添加對應的依賴配置,自動添加測試的starter,還自動生成測試目錄和示例測試類。

關(guān)于這個自動生成的配置類:

@SpringBootTest  // 這已經(jīng)是Spring整合JUnit的注解了
class ApplicationTests {  // 自動生成
    @Test  // JUnit 5的注解
    void contextLoads() {  // 一個簡單的測試方法
        // 測試Spring容器能否啟動}}

首先區(qū)分:

維度Application(主啟動類)ApplicationTest(測試類)
角色項目啟動入口測試入口
運行目的啟動整個應用,對外提供服務驗證代碼是否正確
運行時機開發(fā)/生產(chǎn)環(huán)境運行只在測試時運行
生命周期長期運行(直到手動停止)短暫運行(幾秒鐘)
端口占用占用端口(如8080)不占用端口(或隨機端口)
是否必須每個Spring Boot項目必須有一個可選,但建議有

@SpringBootTest的源碼:

@SpringBootTest 的源碼(簡化版) @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @BootstrapWith(SpringBootTestContextBootstrapper.class) public @interface SpringBootTest { }

那我們?yōu)槭裁床挥迷跍y試類中寫注解@Configuration配置類呢。

實際工作流程:

1. 你只寫了這一行

@SpringBootTest
class UserServiceTest {
    @Autowired UserService userService;
}

 2. Spring 測試框架會這樣做:
 掃描當前測試類所在的包及其子包
 查找 @SpringBootApplication 注解的類
加載這個類的配置(相當于執(zhí)行了 SpringApplication.run())

 3. 找到了你的主啟動類

@SpringBootApplication  // 這里包含了 @Configuration
public class Application {  public static void main(String[] args) SpringApplication.run(Application.class, args);    }}

4. 于是測試類就能使用主啟動類的所有配置了

注意事項
如果測試類在SpringBoot啟動類的包或子包中,可以省略啟動類的設(shè)置,也就是省略classes的設(shè)定,如果不在這兩者之間,我們可以手動的添加,

SpringBoot整合Mybatis:

1.重新創(chuàng)建一個項目,在創(chuàng)建的時候要選擇對應的技術(shù)集:

2.在yml文件中設(shè)置數(shù)據(jù)源 :

注意事項!??!
SpringBoot版本低于2.4.3(不含),Mysql驅(qū)動版本大于8.0時,需要在url連接串中配置時區(qū)jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTC或在MySQL數(shù)據(jù)庫端配置時區(qū)解決此問題

3.定義數(shù)據(jù)層接口于映射配置:

在接口上加上@Mapper注解,自動生成一個代理對象,這樣我們就不需要自己再創(chuàng)建一個實現(xiàn)類了,簡化操作。

4.定義一個Javabean

5.在測試類中注入接口,測試功能

關(guān)于代理對象:

Mapper生成的代理對象是在Spring容器中,我們在測試類使用時需要拿出來,使用@Autowired是最簡單的方法。

到此這篇關(guān)于SpringBoot整合Junit與Mybatis實戰(zhàn)指南的文章就介紹到這了,更多相關(guān)SpringBoot整合Junit與Mybatis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

永州市| 壶关县| 平湖市| 响水县| 扎赉特旗| 康乐县| 沈丘县| 囊谦县| 忻城县| 天水市| 靖西县| 昌吉市| 天峻县| 石柱| 嘉兴市| 宁乡县| 九龙县| 韶山市| 瓦房店市| 琼中| 福贡县| 易门县| 霍邱县| 合阳县| 遂平县| 芦溪县| 甘肃省| 盐山县| 增城市| 依兰县| 平安县| 南汇区| 贺州市| 屏东县| 康乐县| 新干县| 汉沽区| 尚志市| 得荣县| 阿勒泰市| 鹤壁市|