SpringBoot中@Configuration和@Bean和@Component相同点详解
SpringBoot中@Configuration和@Bean和@Component相同点
之前一直有疑惑,为什么SpringBoot中有些组件注入需要使用@Bean,有些需要使用@Component,有些使用@Configuration,今天做了一些实验,解除了疑惑
结论:
@Configuration和@Bean和@Component在注入对象时大体上是没有区别的,都可以为Spring容器注入一个对象(底层对对象的处理在是有很大区别的,详细不在此处解释)
那么他们之间
@Bean注解的作用
是将方法返回值作为一个bean注入到Spring容器中,方法名即为bean的名称

如图所示,该bean注入后的名称就是方法名。
@Component的适用对象是类
标注在类上,将此类作为一个bean注入容器,类名首字母小写即为bean的名称

比如该类标注上@Component后,会为Spring容器注入一个名为myLocaleResolver的bean,但是我们需要的是名为localeResolver的bean,直接改名即可!
@Configuration包含@Component注解
所以两者本质相同!

比如:我们用三种方式为Spring注入国际化bean

我们既可以使用@Bean注解返回一个对象

也可以将@Component注解标注在类上

也可以使用@Configuration注解标注,三者效果相同!
注意:
虽然三种注解使用大体相同,但是还是需要分时而定配置类使用@Configuration,普通组件使用@Component即可,如果是第三方类,我们无法修改类的信息,使用@Bean将对象返回给Spring容器是最好的选择!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
- Spring解读@Component和@Configuration的区别以及源码分析
- Spring中@Configuration和@Component注解的区别及原理
- Spring中@Configuration注解和@Component注解的区别详解
- 详解Spring中@Component和@Configuration的区别
- Spring注解@Configuration和@Component区别详解
- Spring注解中@Configuration和@Component到底有啥区别
- Spring @Configuration和@Component的区别
- 揭秘Spring核心注解@Configuration与@Component的本质区别
相关文章
kafka-console-consumer.sh使用2次grep管道无法提取消息的解决
这篇文章主要介绍了kafka-console-consumer.sh使用2次grep管道无法提取消息的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03
JPA如何使用entityManager执行SQL并指定返回类型
这篇文章主要介绍了JPA使用entityManager执行SQL并指定返回类型的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-06-06
SpringBoot整合Mybatis使用Druid数据库连接池
这篇文章主要介绍了SpringBoot整合Mybatis使用Druid数据库连接池,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-03-03
Java出现:JWT strings must contain exactly&
这篇文章主要介绍了JWT令牌解析失败的原因和解决方法,包括Header、Payload和Signature三段式结构,常见错误原因,通用解决方案以及额外注意点,需要的朋友可以参考下2026-01-01


最新评论