首页>>后端>>Spring->springboot加载类的过程?

springboot加载类的过程?

时间:2023-12-05 本站 点击:0

springboot应用启动原理二扩展urlclassloader实现嵌套jar加载

1、所以,springboot以 org.springframework.boot.loader.JarLauncher 为启动类,又自定义了 LaunchedURLClassLoader 用来加载BOOT-INF中的class文件以及BOOT-INF/lib中的嵌套jar包。

2、 因为 SpringBoot 实现了Jar包的嵌套,一个Jar包完成整个程序的运行。引入自定义类加载器就是为了解决这些不符合jar规格的类无法加载的问题。

3、SpringBootApplication 作用:标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot运行这个类的main方法来启动SpringBoot应用。

Springboot启动过程

1、配置bean的源,就是bean的来源,就是注解了SpringBootApplication的那个类。推断,推断应用类型,有webflux,webservlet,none 推断主类,这个是通过线程堆栈实现,构造一个运行时异常,找异常堆栈里面找mian所在的那个类。

2、SpringBoot的启动主要是通过实例化SpringApplication来启动的。

3、启动:每个SpringBoot程序都有一个主入口,也就是main方法,main里面调用SpringApplication.run()启动整个spring-boot程序,该方法所在类需要使用@SpringBootApplication注解。

4、在了解 Spring Boot 的启动流程的时候,我们先看一下一个Spring Boot 应用是如何启动的,如下是一个简单的 SpringBoot 程序,非常的简洁,他是如何做到的呢,我们接下来就将一步步分解。

5、首先遍历执行所有通过SpringFactoriesLoader,在当前classpath下的META-INF/spring.factories中查找所有可用的SpringApplicationRunListeners并实例化。调用它们的starting()方法,通知这些监听器SpringBoot应用启动。

6、SpringBoot在启动时,通过ConfigurationClassPostProcessor.postProcessBeanFactory完成对依赖jar包中XxAutopConfiguration类的注册,自然DubboAutoConfiguration也会被注册到容器内部。

springBoot应用中配置文件的加载过程

编写你的conroller ,也一定要加@RefreshScope注解, 不加的话,呵呵,对不起,无法运行。

至此,整个environment的配置加载过程就完成了。

则只会根据 classloader 的 classpath 列表,选取第一个出现的文件。因为 springboot 加载配置文件时最底层是使用的下面的方法:这两个方法只会获取 classloader 类的 ucp 属性里面第一个匹配到的值。

Springboot初始化流程解析

首先这里最重要的必然是注解 @SpringBootApplication SpringBootApplication 注解由几个注解复合组成,其中最主要的就是 @SpringBootConfiguration 、 @EnableAutoConfiguration 和 @ComponentScan 这三个。

application.properties需设置spring.jpa.hibernate.ddl-auto=create;springboot会通过实体类创建表;再执行import.sql。

spring boot启动流程分为两部分 一部分是准备阶段,一部分是运行阶段 准备阶段主要有这么几步:配置bean的源,就是bean的来源,就是注解了SpringBootApplication的那个类。

学习springboot需要了解其启动过程,对原理的理解可以避免停留在CRUD层面,对底层有很多深入的理解可以助力我们成长,解决深层次问题。SpringApplication构造函数 run函数 prepareContext 资源加载,并且初始化。

在了解 Spring Boot 的启动流程的时候,我们先看一下一个Spring Boot 应用是如何启动的,如下是一个简单的 SpringBoot 程序,非常的简洁,他是如何做到的呢,我们接下来就将一步步分解。

初始化initialize方法执行完之后,会调用run方法,开始启动SpringBoot。首先遍历执行所有通过SpringFactoriesLoader,在当前classpath下的META-INF/spring.factories中查找所有可用的SpringApplicationRunListeners并实例化。

SpringBoot的自动装配(一)

1、 SpringBoot的自动装配是指:SpringBoot会自动将一些配置类的bean注册到ioc容器,我们可以在需要的地方使用@Autowired或@Resource等注解来使用它。

2、SPI文件有很多的扩展点(很多的配置项key),不在一一叙述。可以在idea中直接搜索spring.factories,可以看到有很多。

3、自己动手写一个启动器的经历:这里报错了,原因是只导入了一个bean而SpringBoot无法启动服务器 解决办法一:将@Import改成@ConponentScan这样就会扫描同级包和子包。

4、Spring的自动装配是指通过Spring容器自动地将一个bean与另一个bean关联起来。Spring提供了三种自动装配方式:默认的byName自动装配:当一个bean的属性名称与其他bean的id相同时,Spring会自动将该bean引用到这些同名的bean中去。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Spring/12690.html