首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

spring的bean的id跟name属性

2012-06-29 
spring的bean的id和name属性1.id属性命名必须满足xml命名规范,因为id其实是xml中就做了规范。总结起来相当

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指定唯一名称才是王道

热点排行