Spring中对bean的管理

本文介绍了Spring项目中如何主动获取bean对象,包括通过名称、类型和类型转换获取,以及bean的作用域(singleton、prototype、request、session和application)。同时讲解了如何处理第三方Bean的管理和配置,推荐使用@Component和@Bean注解,以及第三方类中的importSelector实现。
摘要由CSDN通过智能技术生成

        默认情况下,Spring项目启动时,会将bean对象都创建好放在IOC容器中,如果想要主动获取这些bean对象,首先注入IOC容器对象(ApplicationContext),根据需求获取对象。
注:会受到作用域及延迟初始化的影响

获取对象的三种形式

  • 根据name获取bean:Object getBean(String name)
  • 根据类型获取bean:<T> T getBean(Class<T> requiredType)
  • 根据name获取bean(带类型转换):<T> T getBean(String name, Class<T> requiredType)

bean的作用域

在Spring框架中,bean支持五种作用域,后三种在web环境下才会生效。

作用域 说明
singleton容器内同名称的bean只有一个实例(单例)(默认)
prototype每次使用该bean时会创建新的实例(非单例)
request每个请求范围内会创建新的实例(web环境)
session每个会话范围内会创建新的实例(web环境)
application每个应用范围内会创建新的实例(web环境)

可以通过@Score注解来进行配置作用域

注:

  • 默认的singleton的bean,在容器启动时被创建,可以使用@Lazy注解来延迟初始化(延迟至第一次使用时)。
  • prototype的bean,每一次使用该bean的时候都会创建一个新的实例。
  • 实际开发中,大部分的Bean都是单例的,也就是说大部分的Bean不需要配置scope属性。

第三方Bean

  • 如果要管理的bean对象来自于第三方(不是自定义的),是无法使用@Component及衍生注解声明bean的,这时候我们就需要用到@Bean注解
  • 若要管理第三方bean对象,建议对这些bean进行集中分类配置,可以通过@Configuration注解声明一个配置类。

引入第三方Bean方案

方案三:

在第三方类中创建一个配置类

创建一个类继承ImportSelector接口

创建注解,在注解中引入继承ImportSelector的类

最后在启动类上加上所创建的注解名

总结

当我们使用自定义的类时,使用@Component注解及其衍生出来的注解。
当我们使用第三方类时,使用@Bean注解。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值