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的区别的主要内容,如果未能解决你的问题,请参考以下文章