关于spring boot自动注入出现Consider defining a bean of type ‘xxx‘ in your configuration问题解决方案

关于spring boot自动注入出现Consider defining a bean of type ‘xxx‘ in your configuration问题解决方案搭建完springboot的demo后自然要实现自动注入来体现springioc的便利了,但是我在实施过程中出现了这么一个问题,见下面,这里找到解决办法记录下来,供遇到同样的问题的同僚参考  Description:FieldhelloServiceincom.example.demo.service.TestControllerrequiredabeanoftype’co

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

搭建完spring boot的demo后自然要实现自动注入来体现spring ioc的便利了,但是我在实施过程中出现了这么一个问题,见下面,这里找到解决办法记录下来,供遇到同样的问题的同僚参考

Description:

Field helloService in com.example.demo.service.TestController required a bean of type 'com.example.service.HelloService' that could not be found.


Action:

Consider defining a bean of type 'com.example.service.HelloService' in your configuration.

然后我又看了下自己写的几个类以及注解见下面,感觉写的没有问题啊
  控制器 TestController
  这里写图片描述
  接口HelloService
  这里写图片描述
  接口对应的实现类HelloServiceImpl
  这里写图片描述
  
  根据英文的提示是在配置中找不到一个指定自动注入类型的bean,经过多方排查得出结论:
  正常情况下加上@Component注解的类会自动被Spring扫描到生成Bean注册到spring容器中,既然他说没找到,也就是该注解被没有被spring识别,问题的核心关键就在application类的注解SpringBootApplication上
  这里写图片描述
  这个注解其实相当于下面这一堆注解的效果,其中一个注解就是@Component,在默认情况下只能扫描与控制器在同一个包下以及其子包下的@Component注解,以及能将指定注解的类自动注册为Bean的@Service@Controller和@ Repository,至此明白问题所在,之前我将接口与对应实现类放在了与控制器所在包的同一级目录下,这样的注解自然是无法被识别的

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters={@Filter(type=CUSTOM, classes={TypeExcludeFilter.class}), @Filter(type=CUSTOM, classes={AutoConfigurationExcludeFilter.class})})
@Target(value={TYPE})
@Retention(value=RUNTIME)
@Documented
@Inherited

至此,得出两种解决办法:
  1 .将接口与对应的实现类放在与application启动类的同一个目录或者他的子目录下,这样注解可以被扫描到,这是最省事的办法
  2 .在指定的application类上加上这么一行注解,手动指定application类要扫描哪些包下的注解,见下图
  这里写图片描述
  
  通过这两种方式,那个找不到指定Bean的错误就成功解决了。。。。。那么这篇就这样吧
  PS:控制器Controller也要放在与application同级或者子目录下,道理大致一样

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188621.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • UML教程_css餐厅游戏答案

    UML教程_css餐厅游戏答案 UML教程

    2022年10月24日
    0
  • uart串口通信编程_verilog调用模块端口对应方式

    uart串口通信编程_verilog调用模块端口对应方式1.发送模块moduleuart_tx(clk,rst,start,tx_data_in,tx,tx_active,done_tx);parameterclk_freq=50000000;//MHzparameterbaud_rate=19200;//bitspersecondinputclk,rst;inputstart;input[7:0]tx_…

    2022年9月14日
    0
  • Tcp是什么?_跟你说完了

    Tcp是什么?_跟你说完了之前受到Wireshark——从此我就喜欢上了它,就像是学武之人得到了一把称手好剑的启发,带着回顾、深入TCP的目标,回顾了《TCP-IP协议卷1》《图解TCP/IP协议》,受益匪浅。写这篇文章,希望自己能对TCP形成一个系统性的知识沉淀,也希望能给初学者一个基本概念的认识,读完本文再深入书籍,应该也是不错滴。学习路径:1、阅读《TCP-IP协议卷1》的TCP章节(相关知识非常全面,各种算法…

    2022年9月5日
    2
  • java hashmap扩容大小_HashMap 扩容机制

    java hashmap扩容大小_HashMap 扩容机制HashMap:publicHashMap(intinitialCapacity,floatloadFactor){//初始容量不能<0if(initialCapacity<0)thrownewIllegalArgumentException(“Illegalinitialcapacity:”+initialCapacity)…

    2022年6月17日
    27
  • zookeeper — 第二章 zookeeper 安装与配置说明

    zookeeper — 第二章 zookeeper 安装与配置说明

    2022年3月12日
    48
  • 零散学习笔记(一)—-单相逆变电路设计

    零散学习笔记(一)—-单相逆变电路设计这几天帮别人设计然后画一个电路图,只设计电路图,没有具体实现功能。这题是一道电赛题,大家都知道设计一个电路简单,但是要具体实现功能可不是那么简单的。而本文章是最简单的一部分—电路部分,不涉及程序部分和调试。AC-DC电路设计电源输入电压为220V交流电压,在一般设计中只要是输入为220V交流电肯定需要将交流电转换成直流电压。一般有两个方法:模电方法:使用转换电路——整流(几个二极管组合起来把正负电压变成单向)–滤波(使波形平滑)–稳压(固定输出)–直流电压数电方法:使用DC-AC芯片进行转换(博

    2022年6月9日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号