Spring Boot Bean 解析

Bean 基本概念

Spring容器的基本管理单元,Spring的核心功能为AOP和IOC,其本质在于代替开发者来管理Java对象的生命周期和互相关联关系,而这些在Spring容器中的Java对象被称为bean。

@Bean 和@Component 区别

  • @Bean 用于显式声明单个bean,而不是让Spring自动执行。它将bean的声明与类定义解耦,并允许按照自定义的方式创建和配置bean。当声明在@Configuration注解的配置类中,可以在其他方法中直接调用,不需要@Autowired注入。
  • @Component 用于使用类路径扫描自动检测和自动配置bean。在注释类和bean(即每个类的bean)之间存在一对一的隐式映射。需要@Autowired注入。

简单的讲,@Bean显式的声明了一个bean,bean的默认名称为方法名;@Component隐式的声明了一个bean,bean的默认名称为类名。

Bean 作用域

在Spring中bean的默认模式为单例模式,通过添加@Scope注解可以配置bean的不同作用域。

# 默认是单例模式
@scope

# 多例模式, 每次注入都会产生一个新的bean
@scope("prototype")
    
# request模式,每一次HTTP请求都会产生一个新的bean
@scope("request")
    
# session模式,每一次HTTP请求都会产生一个新的bean,同时该bean会在当前HTTP session内持续有效
@scope("session")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容