Spring框架笔记-Bean基本配置

1.装配一个Bean

在Spring容器的配置文件中定义一个简要Bean的配置片段如下所示:


前面为Bean名称,而后面为Bean类名。
一般情况下,Spring IoC容器中的一个Bean即对应配置文件中的一个< bean >。其中id为这个Bean的名称,通过容器的getBean(“foo”)即可获取相应的Bean,在容器中起到定位查找的作用,是外部程序和Spring IoC容器进行交互的桥梁。class属性指定了Bean对应的实现类。
下面基于XML的配置文件定义了两个简单的Bean:







这段配置信息提供了实例化的Car和Boss这两个Bean必须的信息。Spring IoC容器完全可以据此创建这两个Bean的实例。

2.Bean的命名

一般情况下,在配置一个Bean时,需要为其指定一个id属性作为Bean的名称。id在IoC容器中必须是唯一的,此外id的命名需要满足XML对id的命名规范(id是XML规定的特殊属性):必须以字母开始,后面可以是字母、数字等,实际情况中,id命名约束并不会给我们带来影响,但如果用户确实希望用到一些特殊字符对Bean进行命名,可以使用< bean >的name属性进行命名,name属性没有字符上的限制:


id和name都可以指定多个名字,名字之间可用逗号、分号或者空格进行分隔:


在这里,为Bean定义了三个名称:#car、123以及 $ car。用户可以使用getBean(#car)、getBean(123),getBean($car)获取IoC容器中的Car Bean。
Spring配置文件中不允许出现两个相同id的< bean >,却可以出现两个相同name的< bean >。如果有多个name相同的< bean >,通过getBean(beanName)获取Bean时,将返回最后声明的那个Bean,原因是后面的Bean覆盖了前面同名的Bean。
如果id和name两个属性都没有指定,Spring将自动将全限定类名作为Bean的名称。如:


这时用户可以通过 getBean(“com.baobaotao.simple.Car”)获取Car Bean。如果存在多个实现类相同的匿名< bean >,如:




则第一个Bean通过getBean(“com.baobaotao.simple.Car”)获得;第二个Bean通过getBean(“com.baobaotao.simple.Car#1”)获得;第三个类通过getBean(“com.baobaotao.simple.Car#2”)获得;依次类推。
一般匿名< bean >出现在通过内部Bean为外层Bean提供注入值时使用,正如Java的匿名类一样。

你可能感兴趣的:(Spring框架)