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

Weblogic 所有BEA错误代码详细信息列表

错误消息:此版本的 SQL Server 不支持对“beA2BAero.dbo.aircraft”中的数据库和/或服务器名称的引用

ORA-0 [BEA][Oracle JDBC Driver] 未处理的 sql 类型