@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文件。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐