spring的bean的id和name属性

1.id属性命名必须满足xml命名规范,因为id其实是xml中就做了规范。总结起来相当于java的命名规范,不能以数字,符号大头不能有空格,如123,?ad,"ab "等都是不规范的,Spring在初始化时就会报错,诸如:


Java代码


1. org.xml.sax.SAXParseException: Attribute value "?ab" of type ID must be a name.


org.xml.sax.SAXParseException: Attribute value "?ab" of type ID must be a name.

2.name属性没有以上规定,但是在getBean()会报错


Java代码


1. org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'a b' is defined


org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'a b' is defined


3。配置文件不允许出现两个id相同的<bean>,否则初始化时会报错

4.name属性可以但是getBean得到的是后一个实例

5.name属性可以用,隔开多个名字

6.如果name,id都没指定,那么用类全名作为name

7.如果存在多个id和name都没有指定,且实例类都一样的<bean>,如:


Java代码


1. <bean class="com.stamen.BeanLifeCycleImpl"/>

2. <bean class="com.stamen.BeanLifeCycleImpl"/>

3. <bean class="com.stamen.BeanLifeCycleImpl"/>


<bean class="com.stamen.BeanLifeCycleImpl"/>

<bean class="com.stamen.BeanLifeCycleImpl"/>

<bean class="com.stamen.BeanLifeCycleImpl"/>


则第一个bean通过getBean("com.stamen.BeanLifeCycleImpl")获得,

第二个bean通过getBean("com.stamen.BeanLifeCycleImpl#1")获得,

第三个bean通过getBean("com.stamen.BeanLifeCycleImpl#2")获得,以此类推。

小结:

当然这些都是奇迹淫巧,不足以去时间,通过id指定唯一名称才是王道
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值