IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot底层源码_AbstractBeanDefinition -> 正文阅读

[Java知识库]SpringBoot底层源码_AbstractBeanDefinition

AnnotatedBeanDefinition是什么

公用Beandefinition的实现类的方法和属性


AbstractBeanDefinition的重要属性

scope

bean的作用范围,单例Bean,原型Bean,默认为""(为单例)

autowire

自动装配,取值来自AutowireCapableBeanFactory的autowire,分别有ByName,ByType,Constructory,No,AutoDetet,分别对应通过name装配,通过类型装配,自动装配构造函数常量,没有自动装配常量,混合自动装配(已弃用),默认为No

dependency

依赖于,有None,Object,Simple,All,四种值,分别对应,没有依赖,依赖于对象常量,部分属性依赖,所有属性依赖,默认为none

dependsOn

?bean 初始化所依赖的 bean?

LazyInit

懒加载

primary

是否主Bean,默认false

initMethodName

初始化方法名

BeanClass

Bean的类

instanceSupplier

实力供应商

factoryMethodName

工厂方法名

FactoryBeanName

工厂名


AbstractBeanDefinition重要的方法

AbstractBeanDefinition的构造方法总共有三种

无参构造

AbstractBeanDenfinnition具有无参构造,因为它较为重要的属性都具备默认值

有参构造

有构造函数和属性值的有参构造

AbstractBeanDefinition的有参构造可以只放入参数值与属性值ConstructorArgumentValues,MutablePropertyValues这两个参数生成AbstractBeandefinition,其他参数均为默认值。

BeanDefinition转为AbstractBeanDefiniton的有参构造

AbstractBeanDefinition可以把BeanDefinition类型的转化为AbstractBeanDefinition,而不用开发者自己手动去属性赋值。(最常用)

overrideFrom

通过传入的BeanDefinition可以覆盖原AbstractBeanDefinition的属性值。

applyDefaults

applyDefaults方法可以使LazyInit,AutowireMode(NO),DependencyCheck(None),InitMethodName,EnforceInitMethod(false),EnforceDestroyMethod(false),DestroyMethodName,这些属性使用默认值。

Set/GetBeanClassName

Bean对象类名的定义

Get/Set/Has/ResolveBeanClass(BeanDefinition没有的)

对Bean对象的放入和获取,ResolveBeanClass方法较为特殊,当Class为空返回为空,当Bean有name则返回BeanClass对象。

GetResolvableType

返回Bean可解析的类型

Set/GetScope

Bean的范围定于与获取

IsSingleton/IsPrototype

是否是单例Bean/原型Bean

SetAbstract/IsAbstract

是否是抽象类,抽象类只作为Bean定义的父级

对与属性的填充只讲到上面这些,其他不一一罗列,通常都是存在set/get/is/resolve/add等方法

add/has/getQualifier/Qualifiers

限定符的管理

getOriginatingBeanDefinition

返回原始 BeanDefinition,如果没有则返回null 。

getMergedBeanDefinition

如果给定 bean 的定义是子 bean 定义,则通过与父级合并返回给定顶级 bean 的RootBeanDefinition。通过BeanName去BeanDefinitions里面去寻找BeanDefinition。
如果存在返回 bean 的(可能合并的)RootBeanDefinition,不存在则抛出BeanDefinitionStoreException

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 18:38:23  更:2022-07-20 18:42:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:00:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码