当前位置: 首页 > article >正文

spring boot mapper测试类优化

spring boot mapper测试类优化

有些时候我们只需要测试在 mybatis 写的mapper 是否正确,在注入mapper的时候,
@SpringBootTest 会启动整个容器,包括servlet容器和spring 容器,随着项目文件数逐渐增加,测试一个类会启动很长时间,所以这次就是实现一个注解,加快我们在spring boot中写mapper测试类时的效率

/**
 * 针对  mybatis mapper 测试 注解
 * @description TODO
 * @date 2024-11-30 21:01
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import({DataSourceAutoConfiguration.class, MybatisPlusAutoConfiguration.class})
//不启动 tomcat 容器
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
@MapperScan
public @interface MapperTest {

    /**
     * 指定 spring 容器加载 mapper class
     *
     * @return
     */
    @AliasFor(annotation = SpringBootTest.class, attribute = "classes")
    Class<?>[] classes() default {};

    /**
     * 指定 mapper 路径
     *
     * @return
     */

    @AliasFor(annotation = MapperScan.class, attribute = "basePackages")
    String[] basePackages() default {};

    /**
     * 指定 mapper class 扫描
     *
     * @return
     */
    @AliasFor(annotation = MapperScan.class, attribute = "basePackageClasses")
    Class<?>[] basePackageClasses() default {};
}

使用

@MapperTest(basePackageClasses = RoleMapper.class, classes = RoleMapper.class)
class ApplicationTests {

    @Autowired
    private RoleMapper roleMapper;

    @Test
    void contextLoads() {
        RoleModel roleModel = roleMapper.selectById(1l);
        System.out.println(roleModel);
    }

}

good luck!


http://www.kler.cn/a/421759.html

相关文章:

  • HTML 快速上手
  • 【网络安全】CSRF
  • `pnpm` 不是内部或外部命令,也不是可运行的程序或批处理文件(问题已解决,2024/12/3
  • 【Vue3】【Naive UI】<n-upload>标签
  • 【Delphi】modbus-TCP 协议库
  • 前端学习笔记-Vue篇-01
  • 前端用到的一些框架
  • python蓝桥杯刷题3
  • 游戏引擎学习第25天
  • 【XGlassTerminal.js】快速 构建 炫酷 终端 网页 以及 Linux 模拟器 在线!!
  • android视频播放器之DKVideoPlayer
  • C语言编程1.21波兰国旗问题
  • 【VPX312-0】基于3U VPX总线架构的XC7VX690T FPGA数据预处理平台
  • 机器学习概述,特征工程简述2.1——2.3
  • QT实战-qt各种菜单样式实现
  • Milvus×OPPO:如何构建更懂你的大模型助手
  • 【王道计算机组成原理·个人笔记】开头
  • leetcode 之 二分查找(java)(2)
  • 微软表示不会使用你的 Word、Excel 数据进行 AI 训练
  • 云服务器重装系统后 一些报错与解决[ vscode / ssh / 子用户]