spring配置中id和name属性的区别
spring2016-07-16
可能大家在网上都应该搜索过在 Spring 配置中 id 和 name 属性的区别,可能你会搜索到有一大堆的区别,不过在我这里可能不一样了。
我这里 Spring 的版本为 3.2.4,区别不是很大,这里总结一下。
1.id 和 name 的命名规范不是很严格。
2.id的时候用分号(“;”)、空格(“ ”)或逗号(“,”)分隔开就只能当成一个标识,name的时候用分号(“;”)、空格(“ ”)或逗号(“,”)分隔开就要当成分开来的多个标识。
如:
name=“1 2 3 4”等同于 name=“1,2,3,4” 这样写相当于有 1 2 3 4(4个)个标识符标识当前bean
id=“1 2 3 4” 这样写相当于有 “1 2 3 4”(1个)个标识符标识当前bean
3.配置两个相同的 id 或者 name 都不能通过。
4.如果既配置了 id ,也配置了 name ,则两个都生效。
5.如果id和name都没有指定,则用类全名作为name,如<bean class="com.stamen.BeanLifeCycleImpl">,
则你可以通过
getBean("com.stamen.BeanLifeCycleImpl")
返回该实例。
6.如果存在多个id和name都没有指定,且实例类都一样的,如:
代码
<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”)获得,以此类推。