关于SpringBoot项目启动过程分析

三体文明
• 阅读 1087
咱们的文件也好,代码也好其实都在Disk磁盘里面,上面有一些配置文件,还有一些class文件.一般情况

下先去读取配置文件,基于配置文件里面的信息再去找到需要读取的类,并通过IO输入输出流技术把这些资源
读到我们内存中,然后通过内存中的一个对象来存储这些信息.当使用这些类时,系统就会初始化(比如初始化线
程池,提前加载好加密证书等),构建一些实例对象.

首先它会构建一个工厂BeanFactory,这个对象会创建我们类的实例交给Spring去管理.之后我们的类在

运行的时候会被加载到内存,启动类是根据启动类注解@SpringBootApplication去启动的,根据配置信息来进
行扫描指定包以及子包中的类,再根据扫描注解@ComponentScan去扫面类中有特定注解的类.扫描的目的就是从
磁盘中去找到第一阶段学的File这个类,里面有一些方法可以去访问磁盘当中的这些文件叫ListFiles,就是
找到指定目录下面的文件.我们的类都在磁盘中存着,借助于IO会把磁盘中的.class文件读到我们的内存里里面.
系统底层会基于反射判断这些类有没有这样的注解来描述的对象叫做Bean,当这些类要交给Spring去管理的时
候,它就会创建这个类的实例.

创建完对象以后,把对象存起来下次再用的时候还可以去找到这个对象,仓库管理员Context对象把工厂创建

的对象存储到我们这个Map中,需要的时候从这个Map当中来获取就可以了.

点赞
收藏
评论区
推荐文章
Easter79 Easter79
4年前
springboot读取外部配置文件
springboot项目打成jar包后不好进行配置文件修改,可设置为读取外部配置文件,方便进行配置修改.步骤:1.将jar包中的application.properties配置文件复制到自定义路径下;2.运行jar包命令指定外部配置文件路径:nohupjavajar.jarspring.config.location
Wesley13 Wesley13
4年前
java memcached client
Memcach什么是MemcacheMemcache集群环境下缓存解决方案Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。Memcache是d
Stella981 Stella981
4年前
Linux脚本调用Java模板,将Properties文件放到CLASSPATH中的配置方式
为了方便管理配置文件,每次更改配置文件(例如:jdbc.properties,service.properties),我们不需要重新buildjar,所以将properties单独放到一个目录中,在liunx脚本调用java的过程中,我们将这些配置文件放到CLASSPATH中,并export。!/bin/bashLIBRA
Wesley13 Wesley13
4年前
Java Properties配置文件和XML配置文件读取
一、properties类读取配置文件1、从项目中读取properties配置文件,新建一个main程序,对应位置建立一个名称为config.properties配置文件,随意放置一些键值对。IDEA建立配置文件,对应package鼠标右键,点击New,再点击ResourceBundle,弹出对话框输入名称保存即可。!(https://osci
Stella981 Stella981
4年前
Skynet 进程启动
Skynet进程启动初始化配置skynet进程启动时需要指定配置文件,启动后读取配置文件中的内容并存储在内存中。配置文件格式是kv且k必须是字符串而v必须是字符串或者luaboolean类型。通过L读取配置,随后把配置存储在skynet_env.c模块中
Stella981 Stella981
4年前
Elasticsearch基本概念及核心配置文件详解
<divid"cnblogs\_post\_body"class"blogpostbody"<p&nbsp;  Elasticsearch5.X,下列的是Elasticsearch2.X系类配置,其实很多配置都是相互兼容的</p<h2id"1配置文件"1.配置文件</h2<prename"code"<codeclass
Stella981 Stella981
4年前
EKT Java企业级关键技术强化 Enterprise Edition
EKTenterprisekeytechlology企业关键技术本章目标:1.理解Class类2.理解JAVA类加载体系结构3.理解类的加载过程Class对象由JVM自动产生,每当一个类被加载时,JVM就自动为其生成一个Class对象,通过Class对象可以获得类的相关信息。将类信息读到内存中过程,称为类加载
Stella981 Stella981
4年前
RabbitMQ 配置文件
背景第一次了解到RabbitMQ有配置文件还是在配置集群的时候,官方提到了,可以通过rabbitmq.config配置文件来配置集群(我一般都是直接通过rabbitmqctl脚本命令来搞的)。通常情况下,我们是不需要对RabbitMQ进行配置的,默认的配置已经可以了,我们要做的就是配置内存限制和硬盘空间限制。其他的很少需要动的。但是如果你需要配置
Stella981 Stella981
4年前
SpringBoot读取配置文件信息
application.properties配置文件的读取方式有以下两种Environment方式读取框架中有一个org.springframework.core.env.Environment类,可以读取application.properti
Easter79 Easter79
4年前
SpringBoot读取配置文件信息
application.properties配置文件的读取方式有以下两种Environment方式读取框架中有一个org.springframework.core.env.Environment类,可以读取application.properti
linbojue linbojue
2星期前
使用 ResourceLoader 统一管理你的本地资源
前言在项目开发中,我们经常需要读取各种本地资源文件:配置文件、模板文件、静态资源、数据文件等。Spring框架提供了一个强大而优雅的解决方案——ResourceLoader接口。本文将使用SpringResourceLoader统一管理本地资源,让你的代码
三体文明
三体文明
Lv1
我为你褪去一身骄傲,你却转身朝她微笑
文章
5
粉丝
0
获赞
0