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

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

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

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

整合Junit:

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

spring-boot-starter-test

當(dāng)我們創(chuàng)建 Spring Boot 項(xiàng)目時(無論是通過 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就相當(dāng)于一個火鍋全家桶,里面包含了所有的配料,菜,鍋,我們只需要使用即可,而不需要手動的去下載安裝這些配置。

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

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

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

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

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

首先區(qū)分:

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

@SpringBootTest的源碼:

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

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

實(shí)際工作流程:

1. 你只寫了這一行

@SpringBootTest
class UserServiceTest {
    @Autowired UserService userService;
}

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

 3. 找到了你的主啟動類

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

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

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

SpringBoot整合Mybatis:

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

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

注意事項(xiàng)!??!
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)建一個實(shí)現(xiàn)類了,簡化操作。

4.定義一個Javabean

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

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

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

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

相關(guān)文章

最新評論

页游| 穆棱市| 桦甸市| 金湖县| 金湖县| 葫芦岛市| 晋城| 阿合奇县| 中阳县| 阜南县| 余干县| 武冈市| 高邑县| 红原县| 灵宝市| 青铜峡市| 烟台市| 光山县| 行唐县| 南康市| 新化县| 日喀则市| 宿迁市| 钟祥市| 平塘县| 巴林右旗| 雷州市| 荔波县| 乌苏市| 尼勒克县| 满洲里市| 朝阳区| 东光县| 安阳市| 昭平县| 色达县| 西畴县| 遵义县| 马关县| 霍州市| 晋江市|