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

来源:互联网 发布:如何防范网络诈骗ppt 编辑:程序博客网 时间:2024/06/15 18:21

来自应用程序主干并且被Spring IoC容器管理的对象被称为beans。bean是一个由Spring IoC容器实例化,组织和管理的对象。这些beans是根据为容器提供的配置元数据来创建的,例如配置在XML文件中的<bean/>元数据标签。

bean定义包含有配置元数据提供的信息,容器必需知道如下一些信息:
  • 如何创建bean;
  • Bean的详细生命周期;
  • Bean的依赖;
以上所有配置元数据被翻译在一个属性集合中,这个集合组成了每一个bean的定义,一下是每个属性的定义:
  • class:这个属性指定了创建bean的class;
  • name:这个属性指定了bean的唯一标识符。在基于XML的配置元数据中,可以使用id和/或name属性来指定bean的标识符;
  • scope:这个属性制定了所创建的对象的使用范围;
  • constructor-arg:这个属性被用了注入依赖;
  • properties:这个属性也是被用来注入依赖;
  • autowiring mode:这个属性也是被用来注入依赖;
  • lazy-initialization mode:一个lazy-initialized bean可以告诉IoC容器在第一次被请求创建bean,而不是在容器启动的时候创建;
  • initialization method:该属性指定bean的所有必需属性被容器设置好之后被回调的方法;
  • destruction method:该属性指定了容器中的bean在被销毁时被回调的方法。
Spring配置元数据
Spring IoC容器完全脱离了配置元数据被编写的格式。有三个非常重要的方法来为Spring容器提供配置元数据:
  • 基于XML的配置文件;
  • 基于注解的配置;
  • 基于Java的配置;
以下是包含了几个特别属性的基于XML的bean的元数据定义:
<?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.0.xsd">

   <!-- A simple bean definition -->
   <bean id="..." class="...">
       <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with lazy init set on -->
   <bean id="..." class="..." lazy-init="true">
       <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with initialization method -->
   <bean id="..." class="..." init-method="...">
       <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with destruction method -->
   <bean id="..." class="..." destroy-method="...">
       <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- more bean definitions go here -->

</beans>
0 0