Spring中的Bean和BeanFactory

本文介绍了Spring框架中Bean的概念及其两种状态:singleton与non-singleton。同时还探讨了BeanFactory的作用及与ApplicationContext的区别,以及如何解决singleton Bean依赖non-singleton Bean时的不同步问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring中的BeanBeanFactory
Spring中Bean的概念:
Spring中Bean的概念非常广,包括所有的Java类都可以认为是Bean。
BeanFactory:
在Spring中,通过配置文件来管理Bean,然后通过BeanFactory在程序中来取得Bean。ApplicationContext是BeanFactory的子接口,实现功能更加强大。这两者的区别是,使用BeanFactory,则Web服务器开启的时候,并不进行依赖注入。使用ApplicationContext则相反,在Web服务器开启的时候,对所有bean实行依赖注入,并且执行依赖检查,可以更早发现错误。
Bean:
在Spring容器中,bean有两种状态,singleton和non-singleton。
Singleton的bean,则在Spring容器中只有一个副本。而non-singleton的bean,每次请求都会生成新的bean。
Bean之间可以有依赖,通过property来指定依赖的对象。依赖的对象可以是本地xml里面定义的bean(通过<ref local=””/>),也可以是其他xml文件定义的(通过<ref bean=””/>)。
协调不同步的Bean:
当一个singleton的bean依赖non-singleton的bean时候,会出现不同步的情况。原因是singletn的bean在Spring容器里面只有一个,而non-singleton的bean在singleton bean每次被请求的时候,都会创建出一个实例,使得singleton bean出现不同步。
解决方法有两种:1、部分放弃依赖注入。2、利用方法注入。 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值