02-mybatis-mybatis 中的 @Mapper, @MapperScan, @Repository,mybatis.mapper-locations 的用法与区别
@Mapper
@Mapper是mybatis自身带的注解。
使用@Mapper注解的接口,可以让spring自动创建该接口实现类对象。(先和对应的mapper.xml绑定,然后生成实现类)
@MapperScan
如果需要让多个接口都变成实现类,用@Mapper一个个添加太麻烦,这时我们在Springboot启动类添加@MapperScan,指定要扫描的mapper的包的路径,然后包下面的所有接口在编译之后都会生成相应的实现类,实现批量添加@Mapper注解。
根据百度结果,@Mapper = @MapperScan(自动扫描配置)+Repository(可省略)。
简而言之,批量用@MapperScan,单个@Mapper。
@Repository
@Repository是spring提供的注解,放在类上能够将该类注册成Bean,和@Controller作用一样。
@Repository也可以标注在dao层接口上,放在接口上本来就没有意义,spring中在mapper接口上写一个
@Repository注解,只是为了标识,要想真正是这个接口被扫描,必须:
- ssm框架使用@MapperScannerConfigurer包扫描,生成对应的bean,
- 微服务框架的启动类使用@MapperScan包扫描,生成对应的bean
注:@Repository标注在接口上可以直接省略不写。
加了@MapperScan就相当于给包中的接口都加上了@Mapper,同时@Repository还有消除“注入”的错误提示的作用。
mybatis.mapper-locations
application.yml 中有 mybatis.mapper-locations 这一项,作用是是扫描Mapper接口对应的xml文件。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)