Spring框架笔记-Bean基本配置

1.装配一个Bean

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

<bean id=”foo“class="com.baobaotao.Foo"/>

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">

<bean id="car" class="com.baobaotao.simple.Car"/>
<bean id="boss" class="com.baobaotao.simple.Boss"/>
</beans>

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

2.Bean的命名

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

<bean name="#car1" class="com.baobaotao.simple.Car"/>

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

<bean name="#car1,123,$car" class="com.baobaotao.simple.Car"/>

在这里,为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的名称。如:

<bean class="com.baobaotao.simple.Car"/>

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

<bean class="com.baobaotao.simple.Car"/>
<bean class="com.baobaotao.simple.Car"/>
<bean class="com.baobaotao.simple.Car"/>

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值