package Class05;
import Class04.YuanFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class Student1 {
private static final Log LOGGER = LogFactory.getLog(Student1.class);
public Student1() {
LOGGER.info("Student1 Constructor");
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="Student1" class="Class05.Student1" name="yuanxzh,yuanp,yuanjy"/>
<alias name="Student1" alias="yuanjzh"/>
</beans>
我们通过下面这句
<bean id="Student1" class="Class05.Student1" name="yuanxzh,yuanp,yuanjy"/>
为Student1起了yuanxzh,yuanp,yuanjy三个别名
我们还可以通过下面的语句起别名
<alias name="Student1" alias="yuanjzh"/>
下面是测试代码
@Test
public void testStudentAlias(){
ApplicationContext context = new ClassPathXmlApplicationContext("Class05.xml");
Student1 student = context.getBean("Student1", Student1.class);
Student1 yuanxzh = context.getBean("yuanxzh", Student1.class);
Student1 yuanp = context.getBean("yuanp", Student1.class);
Student1 yuanjy = context.getBean("yuanjy", Student1.class);
Student1 yuanjzh = context.getBean("yuanjzh", Student1.class);
System.out.println("student="+student);
System.out.println("yuanxzh="+yuanxzh);
System.out.println("yuanp="+yuanp);
System.out.println("yuanjy="+yuanjy);
System.out.println("yuanjzh="+yuanjzh);
}
log
student=Class05.Student1@1060b431
yuanxzh=Class05.Student1@1060b431
yuanp=Class05.Student1@1060b431
yuanjy=Class05.Student1@1060b431
yuanjzh=Class05.Student1@1060b431
我们可以看到对象实际上一个。这也就说明iOC容器目前所有的beanId对应bean只有一个实例