-
@Repository
-
@Repository 是Spring的注解,本质上就是@Component和@Controller一样起到标志的作用,声明bean,放入spring容器中
-
@Repository 在mapper接口上,只是为了标识,是dao层的bean
-
在使用Mybatis/MybatisPlus的时候,mp需要动态的生成bean,所以只把@Repository标在mapper接口上mp识别不了
所以,通常会在mp的配置类上加上@MapperScan去扫描,或者是在启动类上加上@MapperScan去扫描。去实现动态代理
如果不加会报错:
No qualifying bean of type 'com.atguigu.ssyx.acl.mapper.PermissionMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
-
-
-
@Mapper
-
@Mapper是mybatis的注解,mybatis可以直接通过@Mapper找到他要代理的mapper,在编译时生成动态代理类,与数据库进行交互
-
可以在启动类上 加上@MapperScan去扫描 如此 就不用再Mapper接口上 写@Mapper,也能实现代理
-
总结:
-
@Repository要配合@MapperScan一起使用 ---是spring的注解
-
@Mapper可以直接使用 --- 是mybatis的注解 配合@MapperScan 就不用写@Mapper注解了