【Java】@MapperScan的作用
@Mapper注解的使用
作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类。添加位置:接口类上面,代码如下所示:
@Mapper public interface StudentMapper { //todo }
@MapperScan注解的使用
作用:指定要变成实现类的接口所在的包,包下面的所有接口在编译之后都会生成相应的实现类。添加位置:是在Springboot启动类上面添加。
@SpringBootApplication @MapperScan("cn.mybatis.mappers") public class SpringbootMybatisDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringbootMybatisDemoApplication.class, args); } }
区别:
添加@MapperScan(“cn.mybatis.mappers”)注解以后,cn.mybatis.mappers包下面所有的接口类,在编译之后都会生成相应的实现类
在不使用@MapperScan前,我们需要直接在Mapper类上面添加注解@Mapper,这种方式要求每一个Mapper类都需要添加此注解,非常麻烦,属于重复劳动。通过使用@MapperScan注解,可以让我们不用为每个Mapper类都添加@Mapper注解。
添加依赖项:
1 <!-- MyBatis --> 2 <dependency> 3 <groupId>org.mybatis.spring.boot</groupId> 4 <artifactId>mybatis-spring-boot-starter</artifactId> 5 <version>2.1.4</version> <!-- 请使用最新版本 --> 6 </dependency>
如果使用多个包,可以用逗号分开引用多个包。
@MapperScan({"com.example.project.mapper", "com.example.other.mapper"})
有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。

浙公网安备 33010602011771号