@MapperScan使用介绍

在启动类上添加@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"})  

使用这种方式,我们通过@Autowired从Spring容器获取Bean的时候,会爆红,但是不影响使用,IDEA自己误判还未将对应的实例入IOC容器

在Mapper接口加上@Repository(加上为了欺骗IDEA),可去掉爆红

@Repository
public interface UserMapper extends BaseMapper<User>{
}

如果使用@Resource注解从Spring容器中获取Bean时,IDEA可以识别,不需要使用其他注解

public interface UserMapper extends BaseMapper<User>{
}

@Mapper

在每一个Mapper接口上加入此注解,不用在主启动类加MapperScan

总结

  • 主启动类加@MapperScan,从IOC容器获取对象的时候使用@Autowired,每一个Mapper加@Repository
  • 主启动类加@MapperScan,从IOC容器获取对象的时候使用@Resource
  • 每个Mapper加@Mapper
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐