一、Bean简介

在上一篇中,我们已经看到过Bean了,在Spring中,Bean是一个由IoC容器管理的实例化的对象。通过它可以获得 实例化的POJO对象,另外Bean还包含一些配置元数据(configuration metadata), 配置元数据是在XML中的进行定义,然后IoC容器根据元数据的定义创建bean,配置bean并管理bean的整个生命周期。

###配置属性主要由以下几种

  • class : 这个是必须的属性,用来指定创建bean对象的类。
  • name : 该属性指定了bean的唯一标识。在基于xml文件配置元数据的方式中,可以使用id或者name来指定 唯一标识。
  • id : 在基于XML的配置元数据中,’id’是bean的唯一标识符,每个bean只能对应一个id。
  • scope : 该属性指定bean的作用域,一般是设定为’singleton’或者’prototype’,默认为’singleton’, 此外还有’request’,’session’,’global-session’。如果作用域是singleton的话,容器内同一个id的bean只产生一个实例;如果作用域是prototype的话,容器内允许产生多个实例。
  • constructor-arg : 该属性用来通过构造器注入依赖。在讲到依赖注入的时候会具体讲解。
  • property : 该属性也是用来注入依赖的,不过是通过setter来进行依赖注入的。
  • autowire模式 : 用于自动装配bean。
  • lazy-init模式 : 通过它对bean设置是否延迟初始化,如果指定”true”,则会进行延迟初始化, 即不是在容器初始的时候创建bean而是第一次进行使用的时候创建。
  • init-method : 通过该属性可以指定初始化方法,指定bean的所有其他属性都设置了之后调用的回调函数。
  • destroy-method : 通过该属性可以指定销毁方法,指定当包含bean的容器销毁时调用的回调函数。

二、Spring配置元数据

IoC容器的配置元数据主要由下面三种方式:

  • 通过XML配置文件
  • 通过Annotation(注解)配置
  • 通过Java代码配置

今天主要讲解通过XML配置文件来进行相关配置的示例。

三、创建基于XML配置元数据的例子

首先引用上一篇的代码,修改下配置文件:

<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

    <!-- 一个简单的bean定义 -->
    <bean id="user" class="sk.spring.tuto.demo2.User">
        <!-- 定义属性 -->
        <property name="name" value="Sirk"></property>
    </bean>
    <!-- 定义bean设置lazy-init -->
    <bean id="user" class="sk.spring.tuto.demo2.User2" lazy-init="true">
        <!-- 定义属性 -->
        <property name="name" value="Sirk"></property>
    </bean>

    <!-- 定义bean设置初始化回调方法 -->
    <bean id="user" class="sk.spring.tuto.demo2.User3" init-method="init">
        <!-- 定义属性 -->
        <property name="name" value="Sirk"></property>
    </bean>

    <!-- 定义bean设置bean销毁时的回调方法 -->
    <bean id="user" class="sk.spring.tuto.demo2.User4" init-method="destory">
        <!-- 定义属性 -->
        <property name="name" value="Sirk"></property>
    </bean>
</beans>

五、总结

本篇初略介绍了bean的定义,以及定义bean可以设置的一些属性。在之后的文章中将逐步详细讲解这些属性等知识。

参考:http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/overview.html

##文档信息