DefaultListableBeanFactory容器

简介: DefaultListableBeanFactory,是 BeanFactory 最重要的实现,像 控制反转和 依赖注入功能,都是它来实现。

DefaultListableBeanFactory容器


      DefaultListableBeanFactory,是 BeanFactory 最重要的实现,像 控制反转依赖注入功能,都是它来实现。

2345_image_file_copy_435.jpgDefaultListableBeanFactory是spring最最最最最最最最最最最简单的容器。

我们通过编码的方式来模拟该容器对bean的管理。

基本步骤

1、创建DefaultListableBeanFactory对象(创建容器,一个最简单的spring容器)

2、生成bean的描述信息(bean的定义,描述这个bean的信息,就相当于给这个bean办个身份证)

3、将bean的描述信息注册到DefaultListableBeanFactory对象中(将这个bean放入到容器中)

4、可以获取bean进行操作了

public class TestDefaultListableBeanFactory {
    public static void main(String[] args) {
        //1、创建DefaultListableBeanFactory对象
        DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
        //2、生成bean的描述信息(bean的定义)
        AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition(MyConfig.class).setScope("singleton").getBeanDefinition();
        //3、将bean的描述信息注册到DefaultListableBeanFactory对象中
        beanFactory.registerBeanDefinition("MyConfig",beanDefinition);
        //查看容器中bean的名称
        for (String name : beanFactory.getBeanDefinitionNames()) {
            System.out.println(name);
        }
    }
}

MyConfig配置类

class MyConfig{
}

输出

2345_image_file_copy_436.jpg

我们可以看到上面没有用到一个spring的注解,但却创建了bean,管理了bean,操作了bean

相关文章
|
数据采集 监控 JavaScript
网站流量日志分析 —数据采集—页面埋点 JavaScript 收集数据|学习笔记
快速学习网站流量日志分析—数据采集—页面埋点 JavaScript 收集数据
931 0
网站流量日志分析 —数据采集—页面埋点 JavaScript 收集数据|学习笔记
|
NoSQL Java Redis
Java中使用RedisTemplate根据前缀获取key列表
我们在使用 Redis 的时候,会需要获取以某个字符串开头的所有 key
1397 0
ValidationException: HV000183: Unable to load 'javax.el.ExpressionFactory'.
ValidationException: HV000183: Unable to load 'javax.el.ExpressionFactory'.
|
Java Maven Spring
用javadoc生成springboot的文档
本文介绍了生成Spring Boot项目JavaDoc文档的步骤,包括创建项目、在pom文件中添加maven-javadoc-plugin插件配置、执行Maven命令生成文档,以及查看生成的文档结果。
305 0
用javadoc生成springboot的文档
|
存储 监控 Cloud Native
云上Doris最佳选择:云原生数据仓库SelectDB
云上Doris最佳选择:云原生数据仓库SelectDB。SelectDB基于Apache Doris,提供实时、高效的数据分析能力,适用于高并发实时报表、交互式分析及日志分析等场景。其核心特性包括云原生架构、实时极速处理、融合统一的数据分析平台和开放生态。SelectDB通过存算分离实现极致弹性与性价比,支持多种数据源和半结构化数据分析,同时兼容MySQL生态,简化用户使用。典型案例包括头部教育公司、互联网金融公司和AI独角兽企业,助力客户实现数据驱动的业务优化。
605 3
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
475 1
|
消息中间件 前端开发 Kafka
离线数仓(二)【用户行为日志采集平台搭建】(1)
离线数仓(二)【用户行为日志采集平台搭建】
|
机器学习/深度学习 自然语言处理 PyTorch
【从零开始学习深度学习】34. Pytorch-RNN项目实战:RNN创作歌词案例--使用周杰伦专辑歌词训练模型并创作歌曲【含数据集与源码】
【从零开始学习深度学习】34. Pytorch-RNN项目实战:RNN创作歌词案例--使用周杰伦专辑歌词训练模型并创作歌曲【含数据集与源码】
|
存储 Java 关系型数据库
Spring Data与多数据源配置
Spring Data与多数据源配置
|
消息中间件 存储 Java
RabbitMQ之死信队列解读
RabbitMQ之死信队列解读