11 命名Spring Bean

1、命名Spring Bean

  • Bean名称

每个Bean拥有一个或多个标识符(identifiers),这些标识符在Bean所在的容器中必须是唯一的,但是并非整个应用中是唯一的。通常,一个Bean仅有一个标识符,如果需要额外的,可考虑使用别名(Alias)扩展。

在基于XML的配置元信息中,开发人员可用id 或者 name 属性类规定Bean的标识符。通常Bean的标识符有字母组成,允许出现特殊字符。如果想引入Bean的别名的话,可以在name属性使用半角逗号或分号来间隔。

Bean的id或name属性并非必须指定,如果留空的话,容器会为Bean自动生成一个唯一的名称。Bean的命名尽管没有限制,但是官方建议采用驼峰的方式,更符合Java的命名约定。

2、Bean 名称生成器(BeanNameGenerator)

  • 由 Spring Framework 2.0.3 引入,框架内建两种实现:

DefaultBeanNameGenerator:默认通用 BeanNameGenerator实现

  • AnnotationBeanNameGenerator:基于注解扫描的BeanNameGenerator实现,起始于Spring Framework 2.5

3、源码分析

DefaultBeanNameGenerator

 

从5.2开始,加入了单例,但是为了以前版本的兼容,高版本中单例模式并没有把默认的构造函数给私有化。

具体实现是委托给BeanDefinitionReaderUtils.generateBeanName(definition, registry);

 

 

AnnotationBeanNameGenerator

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamCatcher

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值