Spring Bean 的创建方式

spring作为一种轻量级的bean容器解决方案,核心解决的问题是bean的创建方式及bean依赖关系的注入。
spring中构造bean的实例一共有三种方法:(1)通过构造器构造实例。(2)使用静态的工厂方法构造
bean实例。(3)通过实例工厂方法构造bean实例.在绝大多数情况下,spring是通过new的方式(构造器方式)
构造出bean的实例。
比较少的情况下则是通过静态的工厂方法或者实例工厂方法构造bean的实例。本文
主要对这三种构造实例的方法做一个评述,期望作抛砖引玉之用:

(1)通过构造方法构造bean实例:
这种方法是spring中提倡使用的一种构造bean实例的方法.这种方法可能要求被构造实例的类提供一个空的
构造器.在XmlBeanFactory中构造实例的一个例子如下:


   <bean id="exampleBean" class="examples.ExampleBean"/>
   <bean name="anotherExample" class="examples.ExampleBeanTwo"/>



(2)通过静态工厂方法构造bean的实例:
当使用静态工厂方法构造bean实例时,class属性是包含了静态工厂方法的类,同时还需要属性factory-method指
明创建实例的静态工厂方法名.这个构造的实例并不一定是class属性指明的类的实例.它可以是其它类的实例.
spring在构造实例时会自动调用静态的工厂方法.下面是一个bean定义的例子.


   <bean id="product1" class="beans.Factory" factory-method="getProduct">
  
   </bean>


上述例子中, 包含静态工厂方法的类是beans.Factory, 工厂方法是getProduct,spring在构造product1实例时会
通过调用beans.Factory中的getProduct构造出product1这种方法可以给用户使用bean调用遗留(legacy)代码
中的方法

(3)通过实例工厂方法构造bean的实例:
这种方法和使用静态工厂方法构造实例类似,通过调用一个bean(该bean的类包含了用来创建实例的工厂方
法)的工厂方法构造bean的实例。这里需要注意的是:需要被构造实例的bean类在配置文件中不需要class属
性,但是需要通过factory-bean属性指明用来创建该bean的工厂bean。并且用factory-method属性指明实例工厂
方法。下面是一个例子:


   <!--包含实例工厂方法的bean的定义-->

   <bean id="factory" class="beans.InstanceFactory">

   </bean>

   <!--需要通过上述bean的实例工厂方法构造的bean的定义-->

   <bean id="product2" factory-bean="factory" factory-method="createInstance">

   </bean>

上述三种构造bean实例的方法,spring提倡使用第一种方式.后面两种方法可以在构造遗留代码中的bean实例
时使用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值