SpringBoot@Component和@Bean的区别
Posted 幽灵雾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot@Component和@Bean的区别相关的知识,希望对你有一定的参考价值。
【提问】
Spring的注解中,@Component和@Bean有什么区别?
【解答】
二者目的均是将Bean注册到Spring容器中,@Bean的作用是可以方便的通过代码来自定义Bean的构造。
具体区别:
1、目标范围不同
@Component 只能注解在类(ElementType.Type)中
@Bean 只能注解方法(ElementType.Method)中
2、实现原理不同
@Component (也包括@Controller、@Service、@Repository、@Configuration等)是通过类路径扫描来自动侦测并放入Spring容器中
@Bean 是通过我们在方法中自定义实现的方式构造这个Bean对象,方法返回后放入Spring容器中
3、应用场景不同
@Component 一般用于无状态的一些Bean中(没有类变量),例如功能、服务性的Service、Controler等
@Bean 一般用于需要带有状态的Bean中(有类变量),例如容器类的Bean、配置类的Bean等
以上是关于SpringBoot@Component和@Bean的区别的主要内容,如果未能解决你的问题,请参考以下文章
springboot component注入servecie
Springboot @Component 使用@Autowired引用bean失败
--BEA官方网站(http: //www.bea.com)甲骨文已完成对该公司的收购BEA Weblogic Server 7.0x应用服务器简明安 装配置手册 1
错误消息:此版本的 SQL Server 不支持对“beA2BAero.dbo.aircraft”中的数据库和/或服务器名称的引用