初学者,在学习spring boot项目中使用mybatis 本来是在dao接口上面使用@mapper注解,没什么问题,然后在网上查到@mapper注解是mybatis3.4版本以后出来的,所以就想到在没有@mapper的时候应该就是用@repository注解,就出现了下面的问题,求解!

解决方案 »

  1.   

    我们现在一般都是用@Mapper 如果用@Respository 可以实现dao,然后自己写实现方法!   几个问题:一般现在都是用@RestController 因为前后台分离,现在都用RestFul。默认都是已json返回数据   2.@RequestMapping 现在都是@GetMapping @PostMapping
      

  2.   

    使用@repository要自己写对应dao的mapper配置文件
      

  3.   

    是要在mybatis的配置文件里面配置吗
      

  4.   

    我想的是@repository只是springIOC代理这个接口 怎么会不能自动注入的问题 而且mybatis不是只要在对应的mapper.xml里面把spacename改成这个接口的限定名就行了吗- -
      

  5.   

    可以在启动类上加@MapperScan注解指定接口所在包
    例如:@MapperScan(basePackages = {"com.tuyou.user.center.repository.standard"})
      

  6.   

    控制层直接注入dao??? 不经过service?
      

  7.   

    如果要用@repository 在启动类加@MapperScan("cn.qzzg.*.mapper") 指定到要相应的位置
      

  8.   

    Spring在扫描注解时,取消了扫描抽象类和接口,所以无法找到你用@reponsitory注解的dao接口。如果在idea中使用@Mapper注解,在@Autowired时,idea会提示找不到bean,但是不影响运行。但是我看着又难受,百度一堆规避的方法,包括设置改为warning等,后来发现一个骚操作,可以把两个注解同时使用,这样,@Mapper可以让你找到bean,@reponsitory可以帮你治疗强迫症。
      

  9.   

    @Mapper是Mybatis的注解,是用来说明这个是一个Mapper,对应的xxxMapper.xml就是来实现这个Mapper,你改成了@repository,使用的是Spring的Bean注解,你觉得呢?
      

  10.   

    @Mapper只是用来扫描用的,当然你可以去掉,在springboot的启动类上@MapperScan(basePackages = {"com.xxx.xxx"})来扫描
      

  11.   

    @Mappler是mybatis注解,mybatis运行时需要能找到到mapper文件,然后运行时构建代理类来完成功能,和Spring没有关系。你应该用@MapperScan来扫描mapper接口,让mybatis能找倒这些接口。然后Spring的@ComponetScan也要扫描这些接口,这样Spring才能管理这些mybatis生成的代理类。
    @Repository是Spring的注解,而且注解放在接口上也没用也没有意义,
      

  12.   

    启动类用@MapperScan的话还要啥自行车啊,dao上啥注解都不用