Spring注解方式无法扫描Service注解的解决

 更新时间:2021年10月09日 11:42:15   作者:god_is_gril  
这篇文章主要介绍了Spring注解方式无法扫描Service注解的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Spring注解方式无法扫描Service注解

场景描述

系统启动没有任何错误,但是单独访问controller就会报错,原因是做了service注入。贴两张图吧

  • 1.分析: 找不到bean的原因就是service注解没有被扫描到spring中生成bean
  • 2.尝试:手动将service在spring的文件中进行配置,启动正常,访问也正常,更证明了第一点的分析结果。
  • 3.查资料,大致查询了很多spring+springmvc+hibernate的框架搭建,核对我的配置(粗心),jar包等,其实都没错,贴一些我觉得写得比较明白清楚的文章大家可以参考,重复写相同的东西价值不大。
  • 4.继续查询资料:我在开源中国查到一篇文章,和我的情况比较类似,但是楼主没有说明具体的解决情况,只是说了一句是配置文件问题,我想我的配置文件都能正常启动,理论上不应该存在问题才对,无奈下,再次返回检查配置文件,由于springmvc的扫描是生效了的,所以我就检查我的spring-context.xml文件, 两个文件都是最简单的配置,所以没贴,最后贴一下我报错的地方;
  • 5.反思一下,还是个人太粗心,spring框架已经最新到5版本了,所以不存在说配置无法扫描的情况,出现问题就应该是文件没对,各位共勉!

spring配置不扫描service层的原因

我将contoller给springmvc进行扫描,然后其余所有交给spring扫描

这是spring的配置图
这是springmvc的配置图

然后发现service层的EmployeeService并没有扫描到出现以下问题

这是service类

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘springmvc.crud.service.EmployeeService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1493)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
… 39 more

最终发现原因是spring配置文件里面context:exclude-filter是不要加use-default-filters的,而context:include-filter是需要加的
找了好久问题!!!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java根据List内对象的属性排序方法

    java根据List内对象的属性排序方法

    下面小编就为大家分享一篇java根据List内对象的属性排序方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 如何用java生成指定范围的随机数

    如何用java生成指定范围的随机数

    以生成[10,20]随机数为例,首先生成0-20的随机数,然后对(20-10+1)取模得到[0-10]之间的随机数,然后加上min=10,最后生成的是10-20的随机数
    2013-09-09
  • RabbitMQ幂等性与优先级及惰性详细全面讲解

    RabbitMQ幂等性与优先级及惰性详细全面讲解

    关于MQ消费者的幂等性问题,在于MQ的重试机制,因为网络原因或客户端延迟消费导致重复消费。使用MQ重试机制需要注意的事项以及如何解决消费者幂等性与优先级及惰性问题以下将逐一讲解
    2022-11-11
  • Java中的接口和抽象类用法实例详解

    Java中的接口和抽象类用法实例详解

    这篇文章主要介绍了Java中的接口和抽象类用法,结合实例形式较为详细的分析了Java中关于接口和抽象类的概念、定义、用法与相关注意事项,需要的朋友可以参考下
    2015-12-12
  • java常用工具类之Excel操作类及依赖包下载

    java常用工具类之Excel操作类及依赖包下载

    这篇文章主要介绍了java常用工具类Excel操作类及依赖包下载,需要的朋友可以参考下
    2014-07-07
  • java多态实现电子宠物系统

    java多态实现电子宠物系统

    这篇文章主要为大家详细介绍了java多态实现电子宠物系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 全面理解Java中的引用传递和值传递

    全面理解Java中的引用传递和值传递

    这篇文章主要介绍了全面理解Java中的引用传递和值传递,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java中反射机制的使用详解

    Java中反射机制的使用详解

    这篇文章主要介绍了Java中反射机制的使用详解,Java的发射机制允许程序在运行时检查和操作任意一个类、方法、属性等的信息,包括了类名、方法名、属性名、参数列表以及访问修饰符等,需要的朋友可以参考下
    2023-09-09
  • MyBatis使用注解开发和无主配置文件开发的情况

    MyBatis使用注解开发和无主配置文件开发的情况

    这篇文章主要介绍了MyBatis使用注解开发和无主配置文件开发的情况,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 详解java中各类锁的机制

    详解java中各类锁的机制

    这篇文章为大家总结了java中常见的锁(互斥锁、读写锁、公平锁与非公平锁等)的机制以及如何使用,文中示例代码讲解详细,需要的可以学习一下
    2021-12-12

最新评论