3-31配备多个bean名称

3-31配置多个bean名称
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.xsd">

    <bean id="name1" name="name2,name3,name4" class="java.lang.String"/>
    <alias name="name1" alias="namex1"/>
    <alias name="name1" alias="namex2"/>

</beans>


测试文件:
package com.apress.prospring2.ch03.beanfactory;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

/**
 * @author janm
 */
public class AliasDemo {
    public static void main(String[] args) {
        BeanFactory factory = new XmlBeanFactory(
                             new ClassPathResource("/META-INF/spring/aliasdemo-context.xml"));

        String s1 = (String)factory.getBean("name1");
        String s2 = (String)factory.getBean("name2");
        String s3 = (String)factory.getBean("name3");
        String s4 = (String)factory.getBean("name4");
        String s5 = (String)factory.getBean("namex1");
        String s6 = (String)factory.getBean("namex2");

        System.out.println((s1 == s2));
        System.out.println((s2 == s3));
        System.out.println((s3 == s4));
        System.out.println((s4 == s5));
        System.out.println((s5 == s6));
    }

}


      你可以调用BEanFactory.getAliases(String)方法并将任意一个bean的名字作为参数传入来获取bean的别名清单。返回的列表中的名称的数量永远比指定给bean的名称总数量少一。少的是id,如果没有id。那么少的就是第一个名字。
      当有很多bean使用一个bean的时候,要使这些bean引用另一个bean,那么最好的做法就是删除这一个bean,然后使后面添加的bean的别名为删除bean的名字。