• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

@service注解而导致required a bean of type ‘XXX’ that could not be found.的问题

武飞扬头像
harily
帮助1

问题背景

我有一个定时任务@Component ,其中注入了一个Service类,但是启动的时候,启动不了报required a bean of type ‘XXX’ that could not be found的错误。

解决步骤

required a bean of type ‘XXX’ that could not be found。这个错误很清楚的表示了问题,就是Spring容器中没有名为”XXX“的bean。如果是采用注解的方式,将bean自动注入Spring容器中,则应该首先看注解是否有误。


首先考虑是否注入环节的注解@Service和@Autowired是否忘记书写,确认书写后,还是报错,遂百度一番,各种方法都试了,还是不行,始终显示找不到注入的Service类,无奈求助同事,两秒发现自己的愚蠢问题。
学新通
@Service的注解搞成dubbo的注解了。。。。
@service引入包的时候没有检查,手快给引入dubbo的包了。为因为自己愚蠢而耽误的一下午懊恼不已,必须学点东西来弥补。

Spring的@service注解

@service注解和@Controller,@Repository 三个注解是spring经典的三层layer。用在springmvc的控制层(@controller)、业务层(@Service)和持久层(@Repository),来方便将对应的bean自动注册到Spring容器中。而@Component 注解是用在”一般组件“上的。
对于@Component 与@service注解和@Controller,@Repository 的关系在查阅资料的时候看到了这篇问答还不错。https://stackoverflow.com/questions/6827752/whats-the-difference-between-component-repository-service-annotations-in?answertab=votes#tab-top
其中Spring的回答,自己简单理解成下面两点:

  1. 四者在功能上没有差别,都是标注这个类是一个Spring bean。
    @Component :
    学新通
    @Service:
    学新通
    可以看出@service注解被@Component注解”注解“了,可以说@service注解和@Controller,@Repository 都是特殊的@Component注解。
  2. 为何有@service注解和@Controller,@Repository ,而不是全部都是@Component注解。或者四者是否可以混用,有@service注解和@Controller,@Repository的意义?
    首先是为了好区分每层的代码,方便程序员编写,代码不会过于混乱。其次是Spring的这句话:学新通
    @service注解和@Controller,@Repository 能让你的类更好的通过工具处理,或者和”切面“关联。
    我理解成,相比于普遍性的@Component注解,@service注解和@Controller,@Repository可以更好的根据他们所在层的实际需求增加相应的合适的功能。例如,@Repository具有异常的”自动转换“,@Controller会检测其中用@RequestMapping注释注释的方法,而@Service有什么特别之处还不太清楚,但如果以后有可以就在@Service注解里进行增加。

dubbo的@Service注解

  1. 什么是Dubbo?
    Apache Dubbo 是一款阿里巴巴开源的微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力。基础能力包括:服务发现、流式通信、负载均衡、流量治理等。

  2. dubbo的@service注解使用?
    @Service用在服务提供方,@Reference用在服务消费方。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggfjab
系列文章
更多 icon
同类精品
更多 icon
继续加载