DefaultListableBeanFactory容器

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 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

相关文章
|
6月前
|
存储 C++ 容器
|
7月前
|
C++ 容器
C++之set/multiset容器
C++之set/multiset容器
|
7月前
|
存储 算法 NoSQL
C++一分钟之-map与set容器详解
【6月更文挑战第21天】C++ STL的`map`和`set`是基于红黑树的关联容器,提供有序存储和高效查找。`map`存储键值对,键唯一,值可重复;`set`仅存储唯一键。两者操作时间复杂度为O(log n)。常见问题包括键的唯一性和迭代器稳定性。自定义比较函数可用于定制排序规则,内存管理需注意适时释放。理解和善用这些工具能提升代码效率。
83 3
|
8月前
|
前端开发 应用服务中间件 nginx
Docker consul的容器服务更新与发现
Docker consul的容器服务更新与发现
|
7月前
|
存储 C++ 容器
C++之list容器
C++之list容器
|
存储 C++ 容器
C++:容器list的介绍及使用
C++:容器list的介绍及使用
|
API C++ 容器
79 C++ - set/multiset容器
79 C++ - set/multiset容器
59 0
|
存储 API C++
78 C++ - list容器
78 C++ - list容器
55 0
|
前端开发 应用服务中间件 nginx
Docker consul的容器服务注册与发现-1
Docker consul的容器服务注册与发现
199 0
|
应用服务中间件 Shell nginx
Docker consul的容器服务注册与发现-2
Docker consul的容器服务注册与发现
115 0