| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 【Spring源码】SpringBoot中Spring容器bean的创建与刷新 -> 正文阅读 |
|
[Java知识库]【Spring源码】SpringBoot中Spring容器bean的创建与刷新 |
前面看spring源码时可以发现 文章目录
一、前期准备1.1 创建工程创建springboot项目,springboot版本为2.5.0,引入spring-boot-starter-web依赖,pom文件如下:
1.2 创建Controller创建一个简单的Controller用于测试
二、探究过程2.1 启动类项目的运行只需要启动类中一行简单的代码,spring容器的创建就是通过
2.2 SpringApplication🔶 又调用了另一个run方法。
🔶 方法的返回值类型为
我们来看看
下面我们通过debug进入run()方法中看看 🔶 容器工厂传入webApplication的类型,这个类型为Servlet应用。
2.3 ApplicationContextFactory这里是一个lambda表达式的写法,根据webApplicationType的类型返回对应的容器对象。
2.4 SpringApplication🔶 看完了
不过这里都是spring容器内置的beanDefinition对象,没有我们自定义的 我们现在获取不到HelloController的bean对象,当我们能获取到这个对象时,就说明容器刷新了。 🔶 继续往下运行,我们发现这行代码执行了好久,根据方法名称也可以看出它的功能就是刷新容器。 刷新后我们成功的获取到了bean对象。 此时beanDefinitionMap中包含了138个对象,刷新之前只包含5个。我们可以在里面找到helloController(Hello的H变成了小写) 🔶 下面我们看看
后面暂时不往下看了。 2.5 结论在启动类中调用SpringApplication的run方法时会根据容器的类型创建不同的容器对象,并调用容器的refresh方法。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 20:29:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |