当前位置: 首页 > wzjs >正文

关于建设门户网站的请示今天的新闻联播

关于建设门户网站的请示,今天的新闻联播,上海公司注册地址可以是住宅吗,做竞猜网站合法吗前言 SpringBoot 是一个让所有 Java 开发者都又爱又恨的框架。喜欢它是因为其易用性和提供的丰富功能,而它较为复杂的设计也让许多开发者头疼不已。 本期知行将会为大家带来以下内容,和大家一起梳理 SpringBoot 中一些较为核心的内容。 SpringBoot 启…

前言

SpringBoot 是一个让所有 Java 开发者都又爱又恨的框架。喜欢它是因为其易用性和提供的丰富功能,而它较为复杂的设计也让许多开发者头疼不已。

本期知行将会为大家带来以下内容,和大家一起梳理 SpringBoot 中一些较为核心的内容。

SpringBoot 启动流程

SpringBoot 的启动流程主要有以下几个核心步骤:

  1. 创建启动容器:创建 DefaultBootstrapContext,用于引导 IOC 容器启动;
  2. 启动监听器:监听应用启动时发生的相关事件;
  3. 准备应用环境:负责配置应用需要的环境;
  4. 创建应用上下文:创建核心 IOC 容器;
  5. 准备应用上下文:加载 BeanDefinition;
  6. 刷新应用上下文:创建 Bean;
  7. 调用 Runner:执行用户自定义的 Runner(ApplicationRunner/CommandLineRunner),用于扩展;

SpringBoot 生命周期

SpringBoot 生命周期的每个阶段都会发布相应的事件:

  1. starting(启动):发布 ApplicationStartingEvent 事件;
  2. environmentPrepared(环境准备完成):发布 ApplicationEnvironmentPreparedEvent 事件;
  3. contextPrepared(上下文准备完成): 发布 ApplicationContextInitializedEvent 事件;
  4. contextLoad(上下文加载): 发布 ApplicationPreparedEvent 事件;
  5. started(启动完成): 发布 ApplicationStartedEvent 事件;
  6. ready(就绪):发布 ApplicationReadyEvent 事件;

在 SpringBoot 3.0.0 前,ready 阶段是 running,现在 running 已被废弃。

如果 SpringBoot 生命周期的正常阶段发生异常,会进入失败阶段并发布 ApplicationFailedEvent 事件。

Bean 生产过程

Bean 的生产大致有 4 个核心步骤:

  1. BeanDefinitionLoader 加载 XML 文件或注解中定义的内容;
  2. BeanDefinitionLoader 将加载的内容转换成 BeanDefinition;
  3. BeanDefinitionRegistry 将 BeanDefinition 注册到 BeanFactory 中;
  4. BeanFactory 负责将 BeanDefinition 生成 Bean;

BeanDefinitionLoader

BeanDefinitionLoader 依靠以下几个类完成加载并解析 BeanDefinition:

  1. AnnotatedBeanDefinitionReader:负责解析注解
  2. AbstractBeanDefinitionReader:负责解析 XML 文件
  3. BeanDefinitionReader:负责解析 Groovy 文件
  4. ClassPathBeanDefinitionScanner:扫描指定类路径

Bean 生命周期

Bean 生命周期的 5 个阶段:

  1. 实例化阶段:实例化 Bean;
  2. 填充属性阶段(可能发生循环依赖):对 Bean 的实例化对象进行属性填充;
  3. 初始化阶段(核心操作):负责初始化 Bean,执行一些预定义的方法;
  4. 使用阶段:开发者使用;
  5. 销毁阶段:执行一些预定义的销毁方法;

Bean 与循环依赖

在 Spring 中,若创建 Bean 发生解决循环依赖会通过三级缓存解决。

  1. singletonObjects(一级缓存):存放 完整 的 Bean 对象;
  2. earlysingletonObjects(二级缓存):存放 Bean 的 早期(early)对象;
  3. singletonFactories(三级缓存):存放 Bean 的 工厂(Factory)对象;

知行有话

本期的分享到此结束啦!如果大家认为 SpringBoot 中还有哪些比较核心的知识点没有提及到,欢迎在评论区留言哦~

http://www.dtcms.com/wzjs/466800.html

相关文章:

  • 新疆电商网站建设seo培训资料
  • 网站建设首选九零后网络餐饮品牌全案策划
  • 海外房产网站建设百度搜索推广创意方案
  • 做二手车网站需要什么手续昆明做网站的公司
  • 如何做网站的线下推广谷歌浏览器chrome官网
  • wordpress邮箱备份济南网络优化哪家专业
  • 手机开发者选项在哪里关闭seo优化服务
  • wordpress主页教程谷歌seo网站建设
  • 网站做竞价对seo有影响吗seo的中文含义是什么意思
  • 58找工作求职招聘seo任务
  • 东城东莞网站建设seo外链建设的方法
  • 拉链网站源码cpm广告联盟平台
  • 怎样使网站排名靠前品牌网络营销推广方案策划
  • 响应式网站在线seo课程培训课程
  • 深圳给企业做网站优化网站推广教程排名
  • 建设工程标准 免费下载网站做网站设计哪里有
  • 遵义市网站建设灰色词首页排名接单
  • 甘肃企业网站建设百度平台推广联系方式
  • 电脑技术学习网站百度seo怎么提高排名
  • 网页版梦幻西游探案任务攻略郑州外语网站建站优化
  • 好商网的网站可以做中英文切换吗小红书seo优化
  • 响应式网站 企业模版虞城seo代理地址
  • 网站弹窗页面是谁做的百度快照入口
  • 网站建设需要硬件设备免费seo搜索优化
  • 住房城乡与建设厅网站首页企业网站运营推广
  • 微信公众号涨粉 网站广州企业网站seo
  • 海珠区网站建设如何做网站赚钱
  • 长安做英文网站设计师必备的6个网站
  • 自己办网站审批流程seo点击排名软件营销工具
  • 公司微网站制作附近成人电脑培训班