•Bean 的名称每个Bean 拥有一个或多个标识符(identifiers),这些标识符在Bean 所在的容器必须是唯一的,不是所在的应用。通常,一个Bean 仅有一个标识符,如果需要额外的,可考虑使用别名(Alias)来扩充。
在基于XML 的配置元信息中,开发人员可用id 或者name 属性来规定Bean 的标识符。通常Bean 的标识符由字母组成,允许出现特殊字符。如果要想引入Bean 的别名的话,可在name 属性使用半角逗号(“,”)或分号(“;”) 来间隔。
Bean 的id 或name 属性并非必须制定,如果留空的话,容器会为Bean 自动生成一个唯一的名称。Bean 的命名尽管没有限制,不过官方建议采用驼峰的方式,更符合Java 的命名约定。
Bean 名称生成器(BeanNameGenerator)
•由Spring Framework 2.0.3 引入,框架內建两种实现:
DefaultBeanNameGenerator:默认通用BeanNameGenerator 实现
•AnnotationBeanNameGenerator:基于注解扫描的BeanNameGenerator 实现,起始于
Spring Framework 2.5,关联的官方文档:
With component scanning in the classpath, Spring generates bean names for unnamed components, following the rules described earlier: essentially, taking the simple class name and turning its initial character to lower-case. However, in the (unusual) special case when there is more than one character and both the first and second characters are upper case, the original casing gets preserved. These are the same rules as defined by java.beans.Introspector.decapitalize (which Spring uses here)