springboot 的启动原理是什么
1.SpringBoot启动原理
SpringBoot的启动原理主要由SpringApplication类来实现,SpringApplication是SpringBoot应用的入口。它的run()方法会创建一个SpringApplication对象,并启动SpringBoot应用的运行。
2.SpringApplication的run()方法
SpringApplication的run()方法会创建一个ApplicationContext,然后调用refresh()方法来完成初始化的操作,refresh()方法会依次调用prepareContext()、prepareEnvironment()和postProcessBeanFactory()方法来完成对ApplicationContext的初始化。
3.prepareContext()
prepareContext()方法会调用createApplicationContext()方法来创建ApplicationContext,SpringBoot支持多种不同的ApplicationContext,如AnnotationConfigApplicationContext、ClassPathXmlApplicationContext等,根据配置的不同,SpringBoot会自动选择不同的ApplicationContext来创建。
4.prepareEnvironment()
prepareEnvironment()方法会调用configureEnvironment()方法来配置环境变量,配置的环境变量会被加载到Spring的Environment中,SpringBoot会根据不同的环境变量来加载不同的配置文件,从而实现不同环境下的不同配置。
5.postProcessBeanFactory()
postProcessBeanFactory()方法会调用configureBeanFactory()方法来配置BeanFactory,BeanFactory配置的内容会被加载到SpringBoot应用中,从而实现不同的配置选项,例如配置不同的数据源等。
6.registerShutdownHook()
registerShutdownHook()方法会注册一个关闭钩子,当SpringBoot应用退出时,会调用该钩子来完成一些清理工作,例如关闭数据库连接等。
猜您想看
-
如何在微信中设置自动清理聊天记录?
一、微信设置自...
2023年05月15日 -
Python面向对象的初级知识是什么
1. 什么是面...
2023年05月26日 -
Centos7在55环境下总是监听tcp6或udp6导致无法使用怎么办
1. 问题分析...
2023年05月26日 -
在CS:GO游戏中,如何修改选手模式设置?
如何在C...
2023年04月17日 -
如何进行Algobase() 类的功能分析
Algobas...
2023年05月26日 -
如何在Edge浏览器中启用“缩放”功能
在Edge浏览...
2023年05月13日