BeanDefinition介绍
BeanDefinition是什么?
/*** A BeanDefinition describes a bean instance, which has property values,* constructor argument values, and further information supplied by* concrete implementations.** <p>This is just a minimal interface: The main intention is to allow a* {@link BeanFactoryPostProcessor} such as {@link PropertyPlaceholderConfigurer}* to introspect and modify property values and other bean metadata.** @author Juergen Hoeller* @author Rob Harrop* @since 19.03.2004* @see ConfigurableListableBeanFactory#getBeanDefinition* @see org.springframework.beans.factory.support.RootBeanDefinition* @see org.springframework.beans.factory.support.ChildBeanDefinition*/
public interface BeanDefinition extends AttributeAccessor, BeanMetadataElement
BeanDefinition在Spring中是用来描述Bean对象的,其不是一个bean实例,仅仅是包含bean实例的所有信息,比如属性值、构造器参数以及其他信息。Bean对象创建是根据BeanDefinitionc中描述的信息来创建的,BeanDefinitionc存在的作用是为了可以方便的进行修改属性值和其他元信息,比如通过BeanFactoryPostProcessor进行修改一些信息,然后在创建Bean对象的时候就可以结合原始信息和修改后的信息创建对象了。
BeanDefinition包含哪些信息?
分类 | 属性 or 方法 | 说明 | 备注 |
---|---|---|---|
Bean对象含义 |
|
Bean对象的class对象 |
必填 |
|
构造器参数 | ||
|
属性值 | ||
|
工厂bean名称 | ||
|
是否是abstract修饰 | ||
Spring对象的含义 |
|
beanDefinition描述 | |
|
依赖的bean名称 | if any | |
|
获取工厂方法 | if any | |
|
获取装饰的原始beanDefinition | if any | |
|
获取父BeanDefinition的名称 | if any | |
|
获取beanDefinition的资源说明,主要用来错误信息提示 | ||
|
角色
|
||
|
Bean的Score名称,也可以扩展
|
||
|
是否是其他bean的autowire的候选人 | ||
|
是否懒加载 | ||
|
是否是主要的候选对象,类有多个实现类的时候,注入没有其他配置的时候会选择primary的候选这注入 | ||
生命周期方法 |
|
初始化方法 | |
|
销毁方法 |
BeanDefinition介绍相关推荐
- Spring 学习之扩展点总结之后置处理器(一)
Spring 源码系列 1.Spring 学习之扩展点总结之后置处理器(一) 2.Spring 学习之扩展点总结之后置处理器(二) 3.Spring 学习之扩展点总结之自定义事件(三) 4.Sprin ...
- 【框架源码】Spring源码底层IOC容器加入对象的方式
1.Spring容器加入对象方式简介 使用XML配置文件 在XML配置文件中使用< bean >标签来定义Bean,通过ClassPathXmlApplicationContext等容器来 ...
- JDK、Spring、Dubbo SPI 原理介绍
导读: 需求变化是程序员生命中唯一不变的事情,本文将介绍 JDK/Spring/Dubbo 中的 SPI 机制,以此来帮助我们编写出一套可扩展性强,易于维护的代码框架. 文|杨亮 网易云商高级 Jav ...
- Spring IoC 源码系列(一)BeanDefinition 初始化与注册
一.BeanDefinition 1.1 什么是 BeanDefinition 在一般的 Spring 项目中,主要通过 XML 的方式配置 bean,而 BeanDefinition 就是 XML ...
- BeanDefinition到Bean
当 BeanDefinition 注册完毕以后, Spring Bean 工厂就可以随时根据需要进行实例化了.对于 XmlBeanFactory 来说,实例化默认是延迟进行的,也就是说在 getBea ...
- spring源码系列一--BeanDefinition
如果说java是由对象组成,那么spring-framework框架可以说是由BeanDefinition所构成.BeanDefinitiion其实是spring中的顶级接口,我们在阅读源码之前必须要 ...
- SpringBoot:Bean生命周期介绍
SpringBoot:Bean生命周期介绍 前言 一.Bean 的生命周期介绍 二.具体操作顺序 前言 Bean 是 SpringBoot 中一个非常重要的组成部分,是面试中经常会问到的一个问题. 本 ...
- Spring官网阅读(四)BeanDefinition(上)
前面几篇文章已经学习了官网中的1.2,1.3,1.4三小结,主要是容器,Bean的实例化及Bean之间的依赖关系等.这篇文章,我们继续官网的学习,主要是BeanDefinition的相关知识,这是Sp ...
- Spring中Bean的生命周期以及三级缓存介绍
Bean的生命周期以及三级缓存介绍 简述 测试代码编写 创建IOC容器(Bean创建) 1.refresh()方法 2.finishBeanFactoryInitialization(beanFact ...
最新文章
- Strategy_Level2
- mysql为什么用索引_MySql为什么使用B+树做索引
- Java基于FTPClient上传文件到FTP服务器
- android应用兼容报告,手机资讯导报:华为发布国内首份Android7.0应用兼容报告
- python的数据类型和变量的定义及使用
- STL源码剖析---STL容器特征总结(含迭代器失效)
- 零基础学习爬虫并实战
- .net调用c++方法时如何释放c++中分配的内存_C/C++编程笔记:C语言编程知识要点总结!大一C语言知识点(全)...
- neo4j导入两个文件_Neo4j:找到两个纬度/经度之间的中点
- 分解质因数-洛谷P3200 [HNOI2009]有趣的数列
- Spark-大规模数据处理计算引擎
- php .net mvc,总是觉得asp.net MVC 写着很别扭,对比PHP的mvc,asp.net 麻烦很多?
- 【转载】10个有用的du命令行
- linux recv 返回值与linux socket 错误分析
- Odoo(OpenErp) 收藏夹(私藏)
- 《凤凰项目》读书笔记二
- 解决VMware虚拟机桥接模式无法上网
- wireshark绿色便携版 v3.4.2.0
- 程序员该如何释放压力
- “造星工厂“乐华娱乐IPO,如何寻找下一个“王一博“?