0
点赞
收藏
分享

微信扫一扫

精品PPT | 华为数字化转型与数据管理实践介绍

624c95384278 2024-12-05 阅读 3
spring boot

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!

举报

相关推荐

0 条评论