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:扫描包路径的读取器。
相关文章
|
2天前
|
安全 Java 编译器
Java其他: 什么是Java中的注解(Annotation)?
Java其他: 什么是Java中的注解(Annotation)?
48 0
|
2天前
|
XML 前端开发 Java
Java 注解
Java 注解
84 0
|
2天前
|
XML 存储 前端开发
java中常用60个注解
面试时候经常会问到一些常用注解, 并且还会问到它是哪些技术提供的, 它们的作用是什么, 下面就解决了其中的问题, 一起来看看吧
86 0
|
10月前
|
Java
java SpringAop 自定义注解 解析
java SpringAop 自定义注解 解析
|
7月前
|
存储 安全 Java
Java 注解详解
在 Java 编程中,注解(Annotation)是一种元数据,它提供了关于程序代码的额外信息。注解不直接影响程序的执行,但可以在运行时提供有关程序的信息,或者让编译器执行额外的检查。 本文将详细介绍 Java 注解的基本概念、内置注解和自定义注解的创建与使用。
73 0
|
9月前
|
Java 程序员 编译器
Java-注解
1、定义 对比 注解:说明程序的,给计算机看的 注释:用文字描述的,给程序员看的
|
11月前
|
Java Spring
Java 注解
Java 注解(Annotation)
69 0
|
Java 程序员 编译器
Java——注解
Java——注解
107 0
|
Java
Java - 注解
Java - 注解
75 0
Java - 注解
|
存储 Java 编译器
注解都不会用,怎让Java对你动情
本文主要介绍 Java 中注解的使用
110 0