-
前言:
-
在Spring家族项目中,我们经常使用注解来配置Bean对象,很少用到xml配置文件
-
原因:
- 因为使用注解来配置Bean对象,只需加个注解即可
- 而xml配置Bean对象,则需要写大量的bean元素,容易造成配置文件的繁冗
-
但是掌握如何创建xml配置文件,有助于我们快速掌握相关注解的作用
-
案例源码:码云仓库的base-002子项目
1、bean元素
-
作用:用来定义一个bean对象
-
基本格式:
<bean id="bean唯一标识(bean名称)" name="bean名称或别名" class="完整类型名称" />
- class为必需项
-
bean名称:
- 每个bean对象都有一个名称,即bean名称。该名称在容器中是唯一的,否则会报错
- 在bean元素中,
id和name均可定义bean名称
。name定义bean名称,看下面的bean名称与别名定义规则部分
-
bean别名:
- 每个bean对象除了bean名称外,还可以有许多别名。Spring容器允许通过bean名称或别名来获取bean对象
- 取别名有两种方式:1)bean元素的name属性指定;2)alias元素
-
bean名称与别名的定义规则
-
name的值可以通过分隔符
,;或者空格
进行分割,按照分隔符得到一个String数组,取数组的第一个元素为bean名称,其余作为bean别名bean名称与别名的定义规则 bean名称 bean别名 若id、name均存在 取id值 取name值 若id存在,name不存在 取id值 无 若id不存在,name存在,取决于name 取name数组的第一个元素 取name数组除第一个元素的其它元素 若id、name均不存在 完整类名#数字编号 第一个bean对象有别名,取值为完整类名 -
若id、name均不存在,bean名称、别名由Spring容器自动生成
- bean名称:完整类名#数字编号,数字编号从0开始。如java.lang.String#0,java.lang.String#1
- bean别名:完整类名。若有2个及以上的bean对象均未指定id、name,则只有第一个bean对象有别名,其余为空
-
-
案例
-
演示bean名称与别名的用法
-
要用到的两个方法
//通过bean名称获取该bean的所有别名 String[] getAliases(String var1); //返回spring容器中定义的所有bean名称 String[] getBeanDefinitionNames();
-
配置文件applicationContext.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"> <!-- id,name均存在--> <bean id="study1" name="study1_1" class="com.spring.study.SpringStudy" /> <bean id="study2" name="study2_1,study2_2;study2_3 study2_4" class="com.spring.study.SpringStudy"/> <!--id存在,name不存在--> <bean id="study3" class="com.spring.study.SpringStudy"/> <!--id不存在,name存在--> <bean name="study4,study4_1;study4_2 study4_3" class="com.spring.study.SpringStudy"/>
-