Spring源码学习--BeanDefinitionHolder
来源:互联网 发布:刷会员的软件 编辑:程序博客网 时间:2024/05/01 12:35
上一篇博客Spring源码学习--Bean注入解析结果BeanDefinition我们已经介绍了BeanDefinition相关的知识,这边博客我们介绍一下BeanDefinitionHolder,简单来说其就是一个BeanDefinition的持有者,其定义了一下变量,并对以下变量提供get和set操作。
private final BeanDefinition beanDefinition;private final String beanName;private final String[] aliases;
BeanDefinitionHolder的源码中都是有关这几个变量的get和set操作。
public class BeanDefinitionHolder implements BeanMetadataElement {private final BeanDefinition beanDefinition;private final String beanName;private final String[] aliases;public BeanDefinitionHolder(BeanDefinition beanDefinition, String beanName) {this(beanDefinition, beanName, null);}public BeanDefinitionHolder(BeanDefinition beanDefinition, String beanName, String[] aliases) {Assert.notNull(beanDefinition, "BeanDefinition must not be null");Assert.notNull(beanName, "Bean name must not be null");this.beanDefinition = beanDefinition;this.beanName = beanName;this.aliases = aliases;}public BeanDefinitionHolder(BeanDefinitionHolder beanDefinitionHolder) {Assert.notNull(beanDefinitionHolder, "BeanDefinitionHolder must not be null");this.beanDefinition = beanDefinitionHolder.getBeanDefinition();this.beanName = beanDefinitionHolder.getBeanName();this.aliases = beanDefinitionHolder.getAliases();}public BeanDefinition getBeanDefinition() {return this.beanDefinition;}public String getBeanName() {return this.beanName;}public String[] getAliases() {return this.aliases;}@Overridepublic Object getSource() {return this.beanDefinition.getSource();}public boolean matchesName(String candidateName) {return (candidateName != null && (candidateName.equals(this.beanName) ||candidateName.equals(BeanFactoryUtils.transformedBeanName(this.beanName)) ||ObjectUtils.containsElement(this.aliases, candidateName)));}public String getShortDescription() {StringBuilder sb = new StringBuilder();sb.append("Bean definition with name '").append(this.beanName).append("'");if (this.aliases != null) {sb.append(" and aliases [").append(StringUtils.arrayToCommaDelimitedString(this.aliases)).append("]");}return sb.toString();}public String getLongDescription() {StringBuilder sb = new StringBuilder(getShortDescription());sb.append(": ").append(this.beanDefinition);return sb.toString();}@Overridepublic String toString() {return getLongDescription();}@Overridepublic boolean equals(Object other) {if (this == other) {return true;}if (!(other instanceof BeanDefinitionHolder)) {return false;}BeanDefinitionHolder otherHolder = (BeanDefinitionHolder) other;return this.beanDefinition.equals(otherHolder.beanDefinition) &&this.beanName.equals(otherHolder.beanName) &&ObjectUtils.nullSafeEquals(this.aliases, otherHolder.aliases);}@Overridepublic int hashCode() {int hashCode = this.beanDefinition.hashCode();hashCode = 29 * hashCode + this.beanName.hashCode();hashCode = 29 * hashCode + ObjectUtils.nullSafeHashCode(this.aliases);return hashCode;}}
阅读全文
0 0
- Spring源码学习--BeanDefinitionHolder
- Spring源码学习--Spring事物
- 【Spring源码学习】Spring框架结构
- Spring源码学习
- spring源码学习目录
- 学习spring源码
- Spring源码学习
- spring源码学习笔记
- Spring源码学习
- Spring源码学习
- Spring源码学习
- Spring源码学习
- Spring IOC 源码学习
- spring 源码学习
- spring 源码学习1
- spring源码学习
- Spring源码学习20160120
- Spring源码学习
- angularjs做跨域遇到的一些问题
- .NET程序内存分析工具CLRProfiler的使用(性能测试)
- 消除眼袋的小窍门
- string to int to double and int double to string
- Spark源码分析之分区器的作用
- Spring源码学习--BeanDefinitionHolder
- 用java发送邮件
- 治理“乱闯红灯”,黑科技让你无处(灯)可闯
- 一维的Haar小波变换
- maven小结
- js网站轮播图怎么做简单?鸡哥教你简单制作效果炫酷
- Spring 父类注入的属性 在子类中调用为null
- 树形控件zTree使用小结
- 算法题练习系列之(一):守形数