SpringBoot启动类在启动时加载时了那些类?(JVM参数)

分析参数: -XX:+TraceClassLoading

在执行参数运行时,先普通运行一次

JAAVA_SpringBoot启动类在启动时加载时了那些类?(JVM参数)

放入参数,执行

JAAVA_SpringBoot启动类在启动时加载时了那些类?(JVM参数)

开始执行,Object类,Serializable序列化,Comparable需要顺序加载的类

JAAVA_SpringBoot启动类在启动时加载时了那些类?(JVM参数)

加载SpringBoot的jar包

JAAVA_SpringBoot启动类在启动时加载时了那些类?(JVM参数)

加载磁盘中的类

JAAVA_SpringBoot启动类在启动时加载时了那些类?(JVM参数)

执行main方法

JAAVA_SpringBoot启动类在启动时加载时了那些类?(JVM参数)

SpringBoot项目启动类执行的过程

JAAVA_SpringBoot启动类在启动时加载时了那些类?(JVM参数)

1. 启动入口类 由注解@SpringBootApplication描述的类 XxxApplication ,(main)这个类启动时,进行自动配置并扫描需要加载的类,通过(反射)类路径CalssPath:com.cy,

2. 把类从磁盘加载(load)(通过线程调用IO)到内存,创建许多Cass对象

3. 拿到Calss对象进行分析(看是否有Spring框架提供的注解@Component,@Controller,@Service等),有注解,Spring就会把这些类的对象进行管理,管理:首先就要通过spring工厂(BeanFactory)创建对象(对象目的:存储数据,执行业务),创建的对象存储在Bean Bool (Map<String,Object>) 里(提高对象的应用效率)

4. ApplicationContext 管理对象:ApplicationContext 从工厂(BeanFactory)拿到创建好的对象,放到Bean Bool(亨元模式)(单例模式) 里

相关文章:

  • 2021-11-16
  • 2022-12-23
  • 2021-06-14
  • 2022-02-26
  • 2021-08-14
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-16
  • 2022-12-23
  • 2021-12-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案