zoukankan      html  css  js  c++  java
  • @repository的含义,并且有时候却不用写,为什么?

    一,首先:@repository是用来注解接口,如下图:这个注解是将接口BookMapper的一个实现类(具体这个实现类的name叫什么,还需要再分析源码找找看)交给spring管理(在spring中有开启对@repository注解的扫描),当哪些地方需要用到这个实现类作为依赖时,就可以注入了.当然我们也可以主动给这个实现类命名,如下图

     

    二,为什么有时候我们不用@repository来注解接口,我们照样可以注入到这个接口的实现类呢?如下图,下图是在接口没有用

    @repository注解的情况下,依然可以实现注入它的实现类.

     上面是在idea中报了红线警告,说找不到这个实现类,但依然是可以运行,没有问题(只是单纯的警告),而在myeclipse中,是连警告都没有的,运行完全没问题.这是因为如下图:

     是因为我们在mybatis的xml文件配置了上图这个bean,它会去将dao这个层中的mapper(也就是我们的接口)都生成实现类,然后交给spring管理(因为mybatis.xml文件我们最终还是导入了spring容器中),所以我们这里不对这些接口用@repository注解,也是一样可以用它的实现类,(这也是我们写项目时,有时感觉完全是没用到@repository注解的原因,因为没有什么必要)而idea报红线警告,可能是idea自己的原因,这个在我们对它对应的接口用@repository注解后,红线警告会消失,运行也完全没问题

  • 相关阅读:
    Java学习----不变的常量
    Java学习----Java数据类型
    Java学习----Java程序结构
    Java学习----main详解
    (转)你知道Android也有安全模式吗?(地球人都知道了吧)
    Android学习----打印日志Log
    Android学习----五大布局
    Android学习-----Button点击事件几种写法
    mysql建立索引 删除索引
    MySQL查看SQL语句执行效率
  • 原文地址:https://www.cnblogs.com/xinghaonan/p/12005401.html
Copyright © 2011-2022 走看看