Spring研究 (4) Bean的配置

原创 2004年09月04日 20:18:00

Spring的逻辑层不是EJB等重量级组件,而是Java Bean,因此正确配置Bean在Spring中就很重要。Spring中Bean的配置一共有以下方式:

第一类:通过Bean的Constructor创建Bean:

创建一个名为exampleBean,类型为examples.ExampleBean的Bean:

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

相当于:

    exampleBean = new examples.ExampleBean();

缺省的,创建的Bean都是Singleton,如果要每次创建新的Bean,设置:

    <bean id="..." class="..." singleton="false" />

对于Singleton的Bean,Spring会跟踪它,下次请求这个Bean时会直接返回Singleton实例。对于non-singleton的Bean,Spring不会跟踪它,每次请求都会创建新的实例。

第二类:通过Factory创建Bean:

如果要通过static factory创建Bean,指定Factory Class和static factory method即可:

    <bean id="exampleBean"
          class="examples.ExampleBean2"
          factory-method="create" />

相当于:

    exampleBean = examples.ExampleBean2.create();

如果不是通过static factory而是工厂实例来创建,指定工厂实例和factory method即可,其中引用的factory-bean应该用<bean id="myFactoryBean" ... />配置好了:

    <bean id="exampleBean"
          factory-bean="myFactoryBean"
          factory-method="create" />

相当于:

    myFactoryBean = ...
    exampleBean = myFactoryBean.create();

初始化Bean

当创建了一个Bean后,立即可以初始化Bean,有两种方式:通过一系列的setProperty(value)和指定Constructor或工厂方法的参数。Spring同时支持这两种方式,但是设计者建议,除非是历史遗留的Bean,推荐使用setProerty的方式初始化Bean。

假定Bean有一个setAge(int age)方法,可以这样初始化Bean:

    <bean id="exampleBean" ...>
        <property name="age"><value>20</value></property>
    </bean>

这是int,float等基本类型和String,Date的初始化方式,如果是一个对象引用,比如setStudent(Student std):

    <bean id="exampleBean" ...>
        <property name="student"><ref bean="studentBeanId" /></property>
    </bean>

特别注意null引用不能用<value></value>,这会被识别为空字符串"",应该用<null/>:

    <bean id="exampleBean" ...>
        <property name="student"><null/></property>
    </bean>

:我也是看Spring的官方文档边看边写出来的,如有错误,还请大家指正!

Spring4----使用注解方式配置bean和bean的属性

使用注解方式配置bean和bean的属性 配置bean 一、在classpath中扫描组件 Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件. (...
  • snow_7
  • snow_7
  • 2016-07-29 10:16:12
  • 2850

3、Spring4之Bean 配置的细节

1). 若字面值中包含特殊字符,则可以使用 value 节点的 把字面值包裹起来。                                2). 在 Bean 的...
  • u010834071
  • u010834071
  • 2014-11-09 22:38:37
  • 1640

Spring4深入理解01----Bean配置(依赖注入和控制反转的区别)

Spring是什么?     Spring 是一个开源框架.     Spring 为简化企业级应用开发而生.     使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实...
  • oChangWen
  • oChangWen
  • 2016-09-12 17:50:07
  • 2127

(四)Spring框架——Bean的定义

来自应用程序主干并且被Spring IoC容器管理的对象被称为beans。bean是一个由Spring IoC容器实例化,组织和管理的对象。这些beans是根据为容器提供的配置元数据来创建的,例如配置...
  • u011063151
  • u011063151
  • 2016-08-07 16:27:27
  • 229

Spring 中bean和local的区别

ref bean="someBean"/>Specifying the target bean by using the bean attribute of the ref/> tag is the ...
  • SystemKing
  • SystemKing
  • 2008-01-23 17:14:00
  • 2423

框架 day36 Spring3 入门,DI依赖注入,装配bean基于xml/注解, 整合Junit4,配置约束自动提示

框架 day36 Spring3 入门,DI依赖注入,装配bean基于xml/注解, 整合Junit4 ,配置约束自动提示,SpEL表达式...
  • opopopwqwqwq
  • opopopwqwqwq
  • 2016-05-24 11:43:11
  • 5117

Spring 全注解配置 bean 和 调用 (3) @Conditonal 条件化的配置bean

package com.xiuye.config; import org.springframework.beans.factory.config.ConfigurableBeanFactory; ...
  • xiuye2015
  • xiuye2015
  • 2016-11-12 12:31:57
  • 1376

Spring-4 bean之间的关系----继承和依赖

此处讲的继承与依赖都是配置上的关系。 (1)继承 与Java里的继承很像,主要用于偷懒。比如同一个类,我想配置许多个该类的实例,传统的做法是: ...
  • u010785025
  • u010785025
  • 2016-09-18 11:04:42
  • 451

Spring4 Bean管理的注解实现

Springbena 的装配和Spring的管理。
  • wu631464569
  • wu631464569
  • 2016-07-16 13:56:17
  • 1906

spring hibernate 配置文件模板

spring hibernate 配置文件模板 可以参考,注释详细
  • h249059945
  • h249059945
  • 2015-07-30 23:41:22
  • 1008
收藏助手
不良信息举报
您举报文章:Spring研究 (4) Bean的配置
举报原因:
原因补充:

(最多只允许输入30个字)