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:扫描包路径的读取器。
目录
打赏
0
0
0
0
3
分享
相关文章
使用Python和Qwen模型实现一个简单的智能问答Agent
使用Python和Qwen模型实现一个简单的智能问答Agent
757 4
Qwen模型应用:微调与部署实践
Qwen模型应用:微调与部署实践
1703 0
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
1238 4
开发者必读:GET和POST请求的终极对比
大家好,我是小米,今天我们来聊聊HTTP协议中的GET和POST请求。它们在数据传输方式、安全性和应用场景上有不同特点。本文将详细解析它们的区别和特点,帮助你更好地理解和运用这两种请求方式。让我们一起学习吧!
568 4
JVM 元空间(Metaspace)
JVM 元空间(Metaspace)
949 5
提升API文档品质:Swagger annotations (注解)使用教程
Swagger 提供的注解集是其框架中定义 API 规范和文档的重要工具。这些注解在代码里标注重要部分,为 Swagger 的解析工作铺路,进而生成详尽的 API 文档。开发者编写的注释能够被转换成直观的文档,并展现API端点、参数和响应等信息。这不仅提升了开发人员对 API 运作的理解与沟通,也使得测试和集成过程更加顺畅。
CopyOnWriteArrayList底层原理全面解析【建议收藏】
CopyOnWriteArrayList是Java中的一个线程安全的集合类,是ArrayList线程安全版本,主要通过Copy-On-Write(写时复制,简称COW)机制来保证线程安全。 Copy-On-Write机制核心思想:向一个数组中添加数据时,不直接操作原始数组,而是拷贝原始数组生成一份原始数组副本,将需要添加的数据添加到原始数组副本中,操作完成后再用原始数组副本直接替换原始数组,从而保证多个线程同时操作原始数组时的线程安全。
springboot 出现 Cannot resolve MVC View ‘index‘ 问题解决办法,前后端不分离项目前端文件存放位置,已经如何访问
springboot 出现 Cannot resolve MVC View ‘index‘ 问题解决办法,前后端不分离项目前端文件存放位置,已经如何访问
1202 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问