springboot加载过程

简介: springboot加载过程

整体流程:

加载-->装配-->注册


在写@Component注解的时候,有没有想过spring容器是怎么加载进去的?

一、加载

sprinboot项目启动需要加载的文件主要有两类,一类是starter组件及其他第三方组件;另一个是业务代码(包括2和3);


在springboot启动程序SpringApplication.run()方法中:

1)加载spring.factories文件

springboot 的SPI机制

load()

--->SpringFactoriesLoader.loadSpringFactories((@Nullable ClassLoader classLoader))

--->Enumeration urls = classLoader != null ? classLoader.getResources("META-INF/spring.factories") : ClassLoader.getSystemResources("META-INF/spring.factories")

-->Properties properties = PropertiesLoaderUtils.loadProperties(resource)

-->cache.put(classLoader, result)

2)加载当前启动类

将当前启动类作为一个beanDefinition注册到registry(注册表)中

loader.load()

-->load(GroovyBeanDefinitionSource source);

3)加载配置文件

SpringApplicationRunListeners listeners = getRunListeners(args) # 这个listeners中包含一个ConfigFileApplicationListener

-->ConfigFileApplicationListener.onApplicationEvent(ApplicationEvent event) #  监听事件并执行 onApplicationEnvironmentPreparedEvent((ApplicationEnvironmentPreparedEvent) event)

-->new Loader(environment, resourceLoader).load() # 最终完成加载


相关文章
|
5月前
|
前端开发 JavaScript Java
Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理
Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理
433 0
|
Java Spring
【面试题精讲】说一说springboot加载配置文件优先级
【面试题精讲】说一说springboot加载配置文件优先级
|
Java Maven
启动SpringBoot 错误: 找不到或无法加载主类 com.xx.xxApplication
1、在项目名称上右击–Reload from disk 2、清理项目里面的class文件进行重新编译, 鼠标点击右侧Maven,找到项目名称,然后点击Lifecycle中的clean/compile/install
975 0
|
10天前
|
消息中间件 NoSQL 安全
(转)Spring Boot加载 不同位置的 application.properties配置文件顺序规则
这篇文章介绍了Spring Boot加载配置文件的顺序规则,包括不同位置的application.properties文件的加载优先级,以及如何通过命令行参数或环境变量来指定配置文件的名称和位置。
|
2月前
|
Java Spring
Spring boot +Thymeleaf 本地图片加载失败(图片路径)的问题及解决方法
这篇文章详细讲解了在Spring Boot应用程序中本地图片无法加载的问题原因,并提供了两个示例来说明如何通过使用正确的相对路径或Thymeleaf语法来解决图片路径问题。
|
2月前
|
前端开发 JavaScript Java
Spring boot 本地图片不能加载(图片路径)的问题及解决方法
这篇文章讨论了Spring Boot应用程序中本地图片无法加载的问题,通常由图片路径不正确引起,并提供了使用正确的相对路径和Thymeleaf语法来解决这一问题的两种方法。
|
2月前
|
Java 测试技术 Spring
Java SpringBoot 加载 yml 配置文件中字典项
Java SpringBoot 加载 yml 配置文件中字典项
32 0
|
3月前
|
IDE Java Maven
【项目问题解决】SpringBoot错误: 找不到或无法加载主类
SpringBoot应用启动时若出现“找不到或无法加载主类”错误,常见原因包括配置问题、编译问题或IDE设置不当。解决方法包括:检查`application.properties`配置,执行`maven clean install`,删除`.idea`文件后重导入IDEA,确保启动类路径正确,清理并重新编译项目,检查项目配置、依赖项及IDEA配置。参考CSDN和知乎相关文章。
995 0
|
5月前
|
缓存 Java 数据库
springboot启动加载
springboot启动加载
|
5月前
|
XML Java 数据格式
【springboot原理篇】Bean的加载方式,面试必看
【springboot原理篇】Bean的加载方式,面试必看
117 0
下一篇
无影云桌面