service 无法注入bean问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了service 无法注入bean问题相关的知识,希望对你有一定的参考价值。

参考技术A No qualifying bean of type 'com.unqd.api.weituo.service.IamCustomerService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: @org.springframework.beans.factory.annotation.Autowired(required=true)

问题原因:

1、接口不存在实现,找不到实现类

2、该接口存在多个实现类,找不到需要注入的实现类

3、接口的实现类被 abstract 修饰,不是最终的子类,必须被继承。(自己犯的错误)

4、springBoot 启动类,没有包扫描注解,或者注解有误

SpringBoot拦截器中Bean无法注入(转)

这两天遇到SpringBoot拦截器中Bean无法注入问题。下面介绍我的思考过程和解决过程:

1.由于其他bean在service,controller层注入一点问题也没有,开始根本没意识到Bean无法注入是在拦截器中无效的问题,一直在查找注解指定的包在哪里配置的,然而却找不到配置,Springboot是用java类的形式加载配置的。在网络的某个角落看到这样的说法:

SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描!
“Application类”是指SpringBoot项目入口类。这个类的位置很关键:
如果Application类所在的包为:com.boot.app,则只会扫描com.boot.app包及其所有子包,如果service或dao所在包不在com.boot.app及其子包下,则不会被扫描!
即, 把Application类放到dao、service所在包的上级,com.boot.Application
知道这一点非常关键,不知道spring文档里有没有给出说明,如果不知道还真是无从解决。

我出问题的类确实在Application类子包下面,看来不是这方面问题。

2.开始意识到只是拦截器上会有这样的问题,查询原因应该是:

拦截器执行在自动bean初始化之前导致这个问题的。

那就只是在拦截器中出现该问题了,解决办法如下:

技术分享图片

首先上图是我的拦截器和要注入的iRedisUtil对象,出问题的就是这个iRedisUtil。

要解决问题是在项目中继承“WebMvcConfigurerAdapter”类的类中添加拦截器类作为一个Bean,如下:

技术分享图片

现在去运行,发现iRedisUtil对象有值了。





以上是关于service 无法注入bean问题的主要内容,如果未能解决你的问题,请参考以下文章

关于spring注解无法注入,我在service的实现类用@service(“accountSer

SpringBoot拦截器中service或者redis注入为空的问题

Maven模块化开发,spring无法注入其它模块中的接口

啥情况?为什么我的 Service 无法注入进来?

spring springboot websocket 不能注入( @Autowired ) service bean 报 null 错误

JSF 2 使用 @ManagedProperty 注入 Spring bean/service 而没有 xml