Spring配置文件解析-Bean
2010-09-29 14:03
267 查看
1.概要
Spring IoC容器将管理一个或多个bean,这些bean 将通过配置文件中的bean定义被创建(在XML格式中为<bean/> 元素)。
在容器内部,这些bean定义由BeanDefinition 对象来表示,该定义将包含以下信息:
全限定类名:这通常就是已定义bean的实际实现类。
bean行为的定义,这些定义将决定bean在容器中的行为(作用域、生命周期回调等等)
对其他bean的引用,这些引用bean也可以称之为协作bean(collaborators) 或依赖bean(dependencies).
创建bean实例时的其他配置设置。比如使用bean来定义连接池,可以通过属性或者构 造参数指定连接数,以及连接池大小限制等。
2.别名
在对bean进行定义时,除了使用id属性来指定名称之外,为了提供多个名称,需要通过name属性来加以指定。而所有的这些名称都指向同一个bean,
在某些情况下提供别名非常有用,比如 为了让应用的每一个组件能更容易的对公共组件进行引用。
然而,在定义bean时就指定所有的别名并不是总是恰当的。有时我们期望 能在当前位置为那些在别处定义的bean引入别名。在XML配置文件中,可用 <alias/> 元素来完成bean别名的定义。如:
3.实例化
当使用基于XML的元数据配置文件,可以这样来指定bean类:
下面的bean定义展示了如何通过工厂方法来创建bean实例。注意,此定义并未指定返回对象的类型,仅指定该类包含的工厂方法。在此例中, createInstance()必须是一个static方法。
使用实例工厂方法实例化:用来进行实例化的非静态实例工厂方法位 于另外一个bean中,容器将调用该bean的工厂方法来创建一个新的bean实例。为使 用此机制,class属性必须为空,而factory-bean属性必须指定为当前(或其祖先)容器中包含工厂方法的bean的名称,而该工厂bean的工厂方法本身
必须通过factory-method属性来设定。
Spring IoC容器将管理一个或多个bean,这些bean 将通过配置文件中的bean定义被创建(在XML格式中为<bean/> 元素)。
在容器内部,这些bean定义由BeanDefinition 对象来表示,该定义将包含以下信息:
全限定类名:这通常就是已定义bean的实际实现类。
bean行为的定义,这些定义将决定bean在容器中的行为(作用域、生命周期回调等等)
对其他bean的引用,这些引用bean也可以称之为协作bean(collaborators) 或依赖bean(dependencies).
创建bean实例时的其他配置设置。比如使用bean来定义连接池,可以通过属性或者构 造参数指定连接数,以及连接池大小限制等。
2.别名
在对bean进行定义时,除了使用id属性来指定名称之外,为了提供多个名称,需要通过name属性来加以指定。而所有的这些名称都指向同一个bean,
在某些情况下提供别名非常有用,比如 为了让应用的每一个组件能更容易的对公共组件进行引用。
然而,在定义bean时就指定所有的别名并不是总是恰当的。有时我们期望 能在当前位置为那些在别处定义的bean引入别名。在XML配置文件中,可用 <alias/> 元素来完成bean别名的定义。如:
<alias name="fromName" alias="toName"/>
3.实例化
当使用基于XML的元数据配置文件,可以这样来指定bean类:
<bean id="exampleBean" class="examples.ExampleBean"/>
下面的bean定义展示了如何通过工厂方法来创建bean实例。注意,此定义并未指定返回对象的类型,仅指定该类包含的工厂方法。在此例中, createInstance()必须是一个static方法。
<bean id="exampleBean" class="examples.ExampleBean2" factory-method="createInstance"/>
使用实例工厂方法实例化:用来进行实例化的非静态实例工厂方法位 于另外一个bean中,容器将调用该bean的工厂方法来创建一个新的bean实例。为使 用此机制,class属性必须为空,而factory-bean属性必须指定为当前(或其祖先)容器中包含工厂方法的bean的名称,而该工厂bean的工厂方法本身
必须通过factory-method属性来设定。
<!-- the factory bean, which contains a method called createInstance() --> <bean id="serviceLocator" class="com.foo.DefaultServiceLocator"> </bean> <bean id="exampleBean" factory-bean="serviceLocator" factory-method="createInstance"/>
相关文章推荐
- spring --MethodInvokingFactoryBean 配置文件解析
- spring源码解析-从xml配置文件中获取bean
- Dubbo和Spring结合配置文件内容解析为bean的过程
- Spring配置文件解析--bean属性
- spring配置文件中非bean标签的原理解析
- Spring读取配置文件,获取bean的几种方式
- Spring通过配置文件注入bean
- Spring笔记-通过Spring的配置文件来配置bean
- spring配置文件解析
- Spring配置文件xsi:schemaLocation无法解析导致启动失败的解决方案
- Spring3.0 入门进阶(1):从配置文件装载Bean
- 【Spring】Spring配置文件简单解析
- Spring 配置中 bean 的 class 使用工厂 Bean 的含义解析
- 1、Spring DI xml配置文件方式解析原理
- Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析
- Spring Boot干货系列:(二)配置文件解析
- Spring源码解析--Spring配置文件解析BeanDefinitionParserDelegate(四)
- Spring读取配置文件org.springframework.beans.factory.BeanCreationException异常产生的原因和解决方案
- Spring 全注解配置 bean 和 调用 (7) properties文件注入
- spring配置文件中bean中scope属性prototype和singleton