目录

1、@Mapper、@MapperScan注解

2、报错使用场景


1、@Mapper、@MapperScan注解

@Mapper注解:

使用:直接在接口类上使用,包是:org.apache.ibatis.annotations.Mapper

作用:为有此注解的接口生成动态代理类,并且注入到spring容器中。

@MapperScan注解:

使用:在启动类上配置,配置的是持久层接口的包路径,标注批量生成此包下的接口的动态代理类,并且注入到容器中。

2、报错使用场景

问题描述:使用的是mybatis-plus和springmvc、spring、springboot、springcloud,在dao也就是Mapper接口上配置了@Mapper注解,当时不知道启动类还配置了@MapperScan注解,进行批量指定所生成的Mapper接口动态代理接口类,所以开始的时候没有在@MapperScan直接我新建的dao包,就报错,但是有@Mapper注解。

1、只使用@Mapper注解,不使用@MapperScan注解。会扫描@Mapper注解所在接口,生成动态代理类,注入到Spring容器中。

2、只使用@MapperScan注解,不使用@Mapper注解。会扫描@MapperScan注解配置的包下面的接口生成动态代理类,注入到Spring容器中。

3、@Mapper、@MapperScan注解都使用,@Mapper接口,在@MapperScan注解中有配置包路径,那么可以正常使用。

4、@Mapper、@MapperScan注解都使用,@Mapper接口,在@MapperScan注解中没有配置包路径,那么会报错,解决办法,就是在@MapperScan注解中配置正确路径下的包即可。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐