SpringBoot@Componet注解注入失败的问题

 更新时间:2023年03月06日 14:07:34   作者:不来的恩特  
这篇文章主要介绍了SpringBoot@Componet注解注入失败的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@Componet注解注入失败

问题描述

在springboot程序编写中,明明给Person类加了@Component注解,容器却显示找不到Person类的Bean对象。

网上找了很多种常规解法,发现都无效,后来才意识到,可能是包扫描的问题,由于当时我的主程序是放在一个与主程序同名的文件夹下,根据默认包扫描规则–扫描主程序所在包及其所有子包中的类,那么方在domain包下的Person类自然不会被扫描到,所以@Component虽然标注了,但却不会生效。

在这里插入图片描述

解决方法

在主程序上添加Componet注解

@ComponentScan("com.example")

让springboot成功扫描example下的所有包,则水到渠成,问题解决

解读@component的作用

踩到一个坑,有一个接口,在这个接口的实现类里,需要用到@Autowired注解,一时大意,没有在实现类上加上@Component注解,导致了Spring报错,找不到这个类

一旦使用关于Spring的注解出现在类里,例如我在实现类中用到了@Autowired注解,被注解的这个类是从Spring容器中取出来的,那调用的实现类也需要被Spring容器管理,加上@Component

@Component("conversionImpl")
//其实默认的spring中的Bean id 为 conversionImpl(首字母小写)
public class ConversionImpl implements Conversion {
    @Autowired
    private RedisClient redisClient;
}

介绍

开发中难免会遇到这个这个注解@Component

@Controller 控制器(注入服务)

用于标注控制层,相当于struts中的action层

@Service 服务(注入dao)

用于标注服务层,主要用来进行业务的逻辑处理

@Repository(实现dao访问)

用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.

@Component (把普通pojo实例化到spring容器中,相当于配置文件中的 )

泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

举例说明 

这是在配置文件中的书写格式,如spring mvc中的applicationcontent.xml,

格式:

<bean id="" class=""/>

在spring boot中的话,因采用的是零配置所以要直接在类上加入@component注解就可以了

下面写这个是引入component的扫描组件

<context:component-scan base-package=”com.mmnc.*”> 

上面的这个例子是引入Component组件的例子,其中base-package表示为需要扫描的所有子包。 

共同点:

被@controller 、@service、@repository 、@component 注解的类,都会把这些类纳入进spring容器中进行管理

总结

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

相关文章

  • 关于idea中SpringBoot启动失败的坑

    关于idea中SpringBoot启动失败的坑

    这篇文章主要介绍了关于idea中SpringBoot启动失败的坑,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Java中的SkyWalking监控告警详解

    Java中的SkyWalking监控告警详解

    这篇文章主要介绍了Java中的SkyWalking监控告警详解,SkyWalking在6.x版本中新增了告警功能,其核心在于config/alarm-settings.yaml文件中,该文件分为rules和webhooks两部分,需要的朋友可以参考下
    2023-11-11
  • Mybatis中注入执行sql查询、更新、新增及建表语句案例代码

    Mybatis中注入执行sql查询、更新、新增及建表语句案例代码

    这篇文章主要介绍了Mybatis中注入执行sql查询、更新、新增以及建表语句,主要说明一个另类的操作,注入sql,并使用mybatis执行,结合案例代码详解讲解,需要的朋友可以参考下
    2023-02-02
  • Java按值传递和按址传递(面试常见)

    Java按值传递和按址传递(面试常见)

    这篇文章主要介绍了Java按值传递和按址传递(面试常见)知识,在面试笔试题中经常会遇到,今天小编给大家详细介绍下,需要的朋友可以参考下
    2017-02-02
  • IDEA中配置操作Git的详细图文教程

    IDEA中配置操作Git的详细图文教程

    这篇文章给大家详细介绍在IDEA中配置Git,IDEA中操作Git的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-10-10
  • Java实现四则混合运算代码示例

    Java实现四则混合运算代码示例

    这篇文章主要介绍了Java实现四则混合运算代码示例,文中展示了详细代码,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Java绘图技术基础(实例讲解)

    Java绘图技术基础(实例讲解)

    下面小编就为大家带来一篇Java绘图技术基础(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Java中BIO、NIO、AIO的理解

    Java中BIO、NIO、AIO的理解

    这篇文章主要为大家详细介绍了Java中BIO、NIO、AIO的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Java实现图片倒影的源码实例内容

    Java实现图片倒影的源码实例内容

    在本篇文章里小编给大家整理的是关于Java实现图片倒影的源码以及相关知识点,有需要的朋友们学习下。
    2019-09-09
  • java将图片转为base64返回给前端

    java将图片转为base64返回给前端

    这篇文章主要为大家详细介绍了java将图片转为base64返回给前端,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02

最新评论