码迷,mamicode.com
首页 > 编程语言 > 详细

Spring3.0官网文档学习笔记(五)--3.3

时间:2014-06-22 07:48:05      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:学习笔记   spring3.0   

3.3 概述

Table 3.1. The bean definition

    除了xml配置文件,ApplicationContext的实现类还允许在容器外注册已经存在的对象:通过getBeanFactory()方法获得DefaultListableBeanFactory。    DefaultListableBeanFactory支持通过registerSingleton(..)和registerBeanDefinition(..)来实现。

3.3.1 命名beans
    一个bean通常只有一个标示符(id),但是可以拥有多个别名(name)。可以通过使用“,”、“;”、“ ”来为name定义多个别名。
    bean不一定要有一个name或者一个id,如果都没有配置的话,spring默认为这个bean生成一个唯一的名字。但是如果要通过ref属性或Service Location来引用的话,必须提供一个名字。什么都不配置的情况通常是用在inner beans和autowiring collaborators。
3.3.1.1 bean定义之外的别名
    通过<alias/>标签可以为同一个bean定义不同的别名

<alias name="subsystemA-dataSource" alias="subsystemB-dataSource"/>
<alias name="subsystemA-dataSource" alias="myApp-dataSource" />
3.3.2 实例化beans
    实例化beans有两种方法:
    1、在class属性配置类,相当于使用new去实例化;
    2、使用工厂创建
3.3.2.1 用构造器初始化
    必须拥有一个默认的构造器(有配置构造器参数的除外)
    内部类的class:com.example.Foo有个内部类Bar,那么Bar的对应的class属性配置为com.example.Foo$Bar
3.3.2.2 使用静态工厂方法初始化

<bean id="clientService"
      class="examples.ClientService"
      factory-method="createInstance"/>
public class ClientService {
  private static ClientService clientService = new ClientService();
  private ClientService() {}

  public static ClientService createInstance() {
    return clientService;
  }
}
3.3.2.3 通过实例化一个工厂方法来初始化
    
<!-- the factory bean, which contains a method called createInstance() -->
<bean id="serviceLocator" class="examples.DefaultServiceLocator">
  <!-- inject any dependencies required by this locator bean -->
</bean>

<!-- the bean to be created via the factory bean -->
<bean id="clientService"
      factory-bean="serviceLocator"
      factory-method="createClientServiceInstance"/>
public class DefaultServiceLocator {
  private static ClientService clientService = new ClientServiceImpl();
  private DefaultServiceLocator() {}

  public ClientService createClientServiceInstance() {
    return clientService;
  }
}

Spring3.0官网文档学习笔记(五)--3.3,布布扣,bubuko.com

Spring3.0官网文档学习笔记(五)--3.3

标签:学习笔记   spring3.0   

原文地址:http://blog.csdn.net/abauch_d/article/details/32926775

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!