上面的5个标签中除去根标签beans,其他4个里除了description我们不用掌握之外,其他3个都要掌握,注意,这些标签都是在根标签beans里面使用的
既然根标签beans里存放的是bean节点,即对象,那么剩下的几个标签理所应当的就是为bean服务的了
1.alias标签
为一个装配到容器中的对象取别名,注意:取别名之后我们按照对象的id还是可以获取到这个对象,现在这个bean有两种获取方式
2.bean标签
<!--
id:为对象名称
class:为对象对象的类的全限定名
name:为这个对象取别名,这个别名更高级,可以取多个别名,且别名直接可以使用多种分隔符
-->
<bean id="userT" class="com.thhh.pojo.UserT" name="t1 t2,t3;t4"/>
测试
package com.thhh.dao;
import com.thhh.pojo.UserT;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
UserT t1 = (UserT) context.getBean("t1");
UserT t2 = (UserT) context.getBean("t2");
UserT t3 = (UserT) context.getBean("t3");
UserT t4 = (UserT) context.getBean("t4");
UserT userT = (UserT) context.getBean("userT");
System.out.println("t1 == t2吗?"+(t1 == t2));
System.out.println("t1 == t3吗?"+(t1 == t3));
System.out.println("t1 == t4吗?"+(t1 == t4));
System.out.println("t1 == userT吗?"+(t1 == userT));
}
}
3.import标签
一般用于团队开发使用,它可以将多个spring配置文件导入,并将其合并为一个spring配置文件
在实际的开发中,最终项目的spring配置文件命名一般为applicationContext.xml,这也是官方文档推荐的名称;前面我们为了方便写文件名称就直接给配置文件名称为beans.xml,其实文件可以随意名称,只要能读取到就行,但是按照规范编写可以提高代码的可读性
假设现在3个人合作开发一个项目,每个人的配置文件使用beans-i.xml来名称,那么在最终整合项目的时候,我们将创建一个applicationContext.xml配置文件,使用import节点将这3个配置文件导入进来
这里的beans-i.xml都是使用beans-1.xml复制出来的,测试的时候我们可以看一下spring怎么解决的子配置文件中对象重名问题
可见使用import导入总配置文件中的子配置文件,如果有重名的对象,它将取最后一个匹配的文件中的对象返回,即后面同名bean将覆盖前面的同名bean,因为最终所有的spring配置文件都会融合成一个配置文件,即一个IOC容器