Spring Bean基本概念

Bean配置信息是Bean的元数据信息,由以下4个方面组成:

(1)Bean的实现类;
(2)Bean的属性信息,如数据库的连接数、用户名、密码;
(3)Bean的依赖关系,Spring根据依赖关系配置完成Bean之间的装配;
(4)Bean的行为配置,如生命周期范围及生命周期各过程的回调函数;

Spring通过一个配置文件描述Bean及Bean之间的依赖关系,利用Java反射功能实例化Bean并建立Bean之间的依赖关系。Spring的Ioc容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载等高级服务。

BeanFactory是Spring框架最核心的接口,它提供了高级Ioc的配置机制。
ApplicationContext建立在BeanFactory之上,面向开发者,一般称为Spring容器

在IoC容器中装配Bean

无

JavaBean属性名命名规范:变量前两个字母要么全小写,要么全大写。
Bean作用域:在Spring环境下,对于所有的Dao类都可以采用单例模式,因为Spring利用AOP和LocalThread的功能,对非线程安全的变量(或称状态量)进行了特殊的处理,使这些非线程安全的类变成了线程安全的类。
Web相关的作用域的Bean注入到singleton或prototype的Bean时存在作用域依赖的问题,此时通过Spring AOP创建动态代理,这个动态代理是Car类的子类,Spring给它添加一段逻辑,通过判断当前Boss位于哪个线程中,让Boss Bean引用到对应线程HTTP请求的car Bean。

<bean id="car" class="com.baobaotao.scope.Car" scope="request" >
  <aop:scoped-proxy/>
</bean>

<bean id="boss" class="com.baobaotao.scope.Boss" p:car-ref="car" >
  <prototype name="car" ref="car"/>
</bean>

无

<bean id="car" class="com.baobaotao.scope.Car" scope="singleton" />
<bean id="boss1" class="com.baobaotao.scope.Boss" p:car-ref="car" />
<bean id="boss2" class="com.baobaotao.scope.Boss" p:car-ref="car" />
<bean id="boss3" class="com.baobaotao.scope.Boss" p:car-ref="car" />

无

<bean id="car" class="com.baobaotao.scope.Car" scope="prototype" />
<bean id="boss1" class="com.baobaotao.scope.Boss" p:car-ref="car" />
<bean id="boss2" class="com.baobaotao.scope.Boss" p:car-ref="car" />
<bean id="boss3" class="com.baobaotao.scope.Boss" p:car-ref="car" />

无

各种配置方式比较

无

无

猜你喜欢

转载自blog.csdn.net/qq_26591517/article/details/80064188