@Repository 与 @Mapper的区别
注意常用的Mybatis配置类
·
- 数据接口层 @Repository 与 @Mapper都是作用于数据接口层,用于数据访问
- 分属不同的框架 org.springframework.stereotype.Repositor和org.apache.ibatis.annotations.Mapper,从类的包路径就可以看出来,@Mapper是 Mybatis 的注解,和 Spring 没有关系,@Repository 是 Spring 的注解,用于声明一个 Bean。
- 动态加载方式不同 使用 Mybatis 有 XML 文件或者注解的两种使用方式,原理是一样的,Mybatis 需要找到对应的mapper,在编译的时候动态生成代理类,实现数据库查询功能,所以只要在数据接口类上加上@Mapper就能被动态加载。
然后,@Repository只是为了标识,注解本身是没有作用的,需要和@MapperScan注解配合使用
注意
- 单独使用@MapperScan也是可以的,@Repository和@MapperScan配合是非常明确了声明一个数据接口类,所以在service层注入,idea不用报错。
- @Mapper和@MapperScan注解idea会报错,因为不在spring的bean管理中,可以安装mybatis插件,就不报错了
常用的Mybatis配置类
import org.mybatis.spring.annotation.MapperScan;
@Configuration
@MapperScan("com.study.mapper")
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
更多推荐
所有评论(0)