JAVA-BeanDefinition是什么?是干什么的?在哪里?里面有什么?

简介: JAVA-BeanDefinition是什么?是干什么的?在哪里?里面有什么?

目录

前言

抛砖引玉

单词含义

BeanDefinition是什么?

BeanDefinition在哪个包里面?

BeanDefinition里面有哪些属性?
BeanDefinition是如何存放的?

BeanDefinition被读取的常见读取器

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。

前言

在spring 中,bean要注入到IOC容器里,每个bean对象都通过BeanDefinition进行定义的。此博客带您了解BeanDefinition。

抛砖引玉

单词含义

BeanDefinition:

Bean的释义;解释;定义;BeanDefinition是什么?

描述一个bean的全部信息,比如他的class类型、Bean的作用域、是否懒加载…


BeanDefinition在哪个包里面?

在spring-beans\org\springframework\beans\factory\config包下


如果您想要下载spring源码进行研究Spring的可以看博主的另一篇博客:

BeanDefinition里面有哪些属性?

BeanClass:表示一个bean的类型,Spring在创建Bean的过程中会根据此属性来实例化得到对象。

scope:表示一个bean的作用域,比如:scope为singleton,则此bean就是一个单例Bean; scope为prototype,则此bean就是一个原型Bean。


isLazy:表示一个bean是不是需要懒加载,原型bean的isLazy属性不起作用,懒加载的单例bean,会在第一次getBean的时候生成该bean,非懒加载的单例bean,则会在Spring启动过程中直接生成好。


dependsOn:表示一个bean在创建之前所依赖的其他bean,在一个bean创建之前,它所依赖的这些bean得先全部创建好。


primary:表示一个bean是主要的bean,在Spring中一个类型可以有多个bean对象,在进行依赖注入时,如果根据类型找到了多个bean,这时会判断这些bean中是否存在一个主bean,如果存在,则直接将这个bean注入给属性。


factoryMethodName:表示指定工厂方法,将在指定的工厂bean上调用或者作为本地bean类上的静态方法调用


initMethodName:表示一个bean的初始化方法,一个bean的生命周期过程中有一个步骤叫初始化,Spring会在这个步骤中去调用bean的初始化方法,初始化逻辑由程序员自己控制,表示程序员可以自定义逻辑对bean进行加工

BeanDefinition是如何存放的?

Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>(256)

当Bean注册完成后,会在spring容器中把扫描到的beanDefinition存放到beanDefinitionMap中,方便后续的使用。


BeanDefinition被读取的常见读取器

AnnotatedBeanDefinitionReader:解析类上的注解,包含某些注解的时候会成为Bean。

  • XmlBeanDefinitionReader:可以解析xml文件中的标签。
  • ClassPathBeanDefinitionScanner:扫描包路径的读取器。
相关文章
|
6月前
|
Java 程序员 编译器
认识Java 的反射机制
反射Reflection被视为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。反射是一种功能强大且复杂的机制。使用它的主要人员是工具构造者,而不是应用程序员。
42 5
|
安全 Java API
Java-反射机制
Java-反射机制
java SpringAop 自定义注解 解析
java SpringAop 自定义注解 解析
|
6月前
|
XML 存储 前端开发
Java中的反射机制详解与应用
Java中的反射机制详解与应用
|
缓存 JavaScript 前端开发
Java的反射机制(一)
Java的反射机制(一)
85 0
|
设计模式 Java API
Java的反射机制(二)
Java的反射机制(二)
92 0
|
XML IDE Java
Java中的反射技术
Java的反射机制是在运行状态中,对于任何一个类,都可以知道这个类的所有属性和方法,对于任何一个对象,都可以调用它所有的方法和属性,修改部分类型信息,这种动态获取信息以及动态调用对象方法的功能称为Java的反射机制
Java中的反射技术
|
Java 容器 Spring
java面试题:什么是bean装配?
java面试题:什么是bean装配?
java面试题:什么是bean装配?
Java Bean 为什么必须要有一个无参构造函数?
JAVA EE 中,JavaBean 是一个很重要的概念,而 JavaBean 还有以下的使用习惯。 首先我们知道,有两种方法为java对象中的元素赋值:
748 0
Java Bean 为什么必须要有一个无参构造函数?