spring 组件和 bean 的作用域有啥区别? [复制]

Posted

技术标签:

【中文标题】spring 组件和 bean 的作用域有啥区别? [复制]【英文标题】:What is the difference between spring component and bean's scope? [duplicate]spring 组件和 bean 的作用域有什么区别? [复制] 【发布时间】:2019-03-26 08:11:20 【问题描述】:

组件通过@Component注解用于类级别定义,而Bean通过@Bean注解用于构造或方法级别定义。 @Component 用于使用类路径扫描自动检测和自动配置 bean。那是什么意思?

【问题讨论】:

【参考方案1】:

这两个注解都用于定义 Spring 托管 bean。

您使用@Component@Configuration 之外定义一个bean。您将注释应用到定义组件的类之上。

@Component
public class MyComponent 


您使用@Bean@Configuration 中定义一个bean。您将注释应用到创建 bean 的方法之上。

@Configuration
public class MyConfig 

    @Bean
    public MyComponent myComponent() 
        return new MyComponent();
    


【讨论】:

【参考方案2】:

@Component 可用于,spring 自动查找 bean 并注册到上下文。

@Bean - 我们有责任为特定 bean 提供实例化实现。

【讨论】:

以上是关于spring 组件和 bean 的作用域有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

CDI 中的@ApplicationScoped 和@Singleton 作用域有啥区别?

spring的bean作用域有几种,开发中需要注意啥?

spring配置文件中能够用到的bean的作用域有哪些

函数的作用域和类的作用域有啥区别

在Spring中,Bean有几种作用域

在Spring中,Bean有几种作用域?