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的官方文档边看边写出来的,如有错误,还请大家指正!

Spring高级装配--条件化的bean

条件化的bean 假设你希望一个或多个bean只有在应用的类路径下包含特定的库时才创建。或者我们希望某个bean只有当另外某个特定的bean也声明之后才会创建。我们还可能要求只有某个特定的环境变量设...
  • chengyunyi123
  • chengyunyi123
  • 2017年02月09日 11:57
  • 653

3、Spring4之Bean 配置的细节

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

使用Spring绑定的五种方式

1. 通过Setter注解绑定Bean的依赖 public class CustomAuthenticationProcessingFilter extends UsernamePasswordAut...
  • Robinsone
  • Robinsone
  • 2015年03月26日 10:19
  • 706

spring关于bean的配置

spring中bean的配置 1.配置形式:     (1) 基于XML文件的方式             1.在xml文件中通过节点来配置bean 2.id:Bean的...
  • Mrwuyi
  • Mrwuyi
  • 2016年06月02日 10:12
  • 1462

Spring-3:bean的属性配置细节

本文讲述Spring框架中,对bean属性进行配置的细节。主要包括:1、字面值(可以用字符串表示的值),包括基本数据类型及其封装类、String类型。可以用元素标签(无需带双引号)或者value属性(...
  • u013468917
  • u013468917
  • 2016年07月08日 20:08
  • 1023

Spring Bean配置方式之一:Java配置

简介: Spring bean 是使用传统的 XML 方法配置的。在这篇文章中,您将学习使用基于纯 Java 的配置而非 XML 来编写 Spring bean 并配置它们。本文将介绍可用来配置 be...
  • dingqinghu
  • dingqinghu
  • 2013年05月22日 23:23
  • 3686

Spring通过注解配置bean

简介及测试  Spring支持通过注解的方式来配置bean实例。Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件。特定组件包括:   @Component:基本注解,标...
  • xiangwanpeng
  • xiangwanpeng
  • 2016年12月25日 11:38
  • 587

Spring4 Bean管理的注解实现

Springbena 的装配和Spring的管理。
  • wu631464569
  • wu631464569
  • 2016年07月16日 13:56
  • 1680

【Spring】装配Bean-(1)-使用XML配置

Spring配置
  • robinjwong
  • robinjwong
  • 2014年05月11日 23:18
  • 5876

使用 Java 配置进行 Spring bean 管理

概述 众所周知,Spring 框架是控制反转 (IOC) 或依赖性注入 (DI) 模式的推动因素,而这种推动是通过基于容器的配置实现的。过去,Spring 允许开发人员使用基于 XML 的配置,...
  • JIESA
  • JIESA
  • 2016年07月15日 20:45
  • 2294
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring研究 (4) Bean的配置
举报原因:
原因补充:

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