dao层的每一个接口变成实现类,那么要在每个接口类上加上@Mapper注解,比较麻烦
简化:在启动类上添加@MapperScan注解指定扫描的包,该包下的所有接口在编译之后都会生成相应的实现类
- @SpringBootApplication
- @MapperScan("com.lixianhe.mapper")
- public class MpDemoApplication {
- public static void main(String[] args) {
- SpringApplication.run(MpDemoApplication.class, args);
- }
- }
使用@MapperScan注解多个包
@MapperScan({"com.kfit.demo","com.kfit.user"})
mapper接口
public interface UserMapper extends BaseMapper<User> {}
在我们通过Spring容器注入的时候,会爆红,但是不影响使用,因为@Mapper、@MapperScan都是MyBatis提供的注解,而不是Spring自带的,IDEA自己误判还未将对应的实例入IOC容器
在接口加上@Repository,把Mapper加入IOC容器,可去掉爆红
总结:配置了@MapperScan注解,可以不用在dao层的每一个接口上的加@Mapper