-
叙述
-
- @SpringBootApplication
-
- @SpringBootConfiguration
-
@EnableAutoConfiguration
-
- @AutoConfigurationPackage
-
@Import(AutoConfigurationImportSelector.class)
-
springboot启动简单流程
============================================================

上图为SpringBoot启动结构图,我们发现启动流程主要分为三个部分,
-
第一部分进行SpringApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器
-
第二部分实现了应用具体的启动方案,包括启动流程的监听模块、加载配置环境模块、及核心的创建上下文环境模块
-
第三部分是自动化配置模块,该模块作为springboot自动配置核心
说springboot的启动流程当然少不了springboot启动入口类
@SpringBootApplication
public class SpringBootWebApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(SpringBootWebApplication.class);
application.run(args);
}
}
每个SpringBoot程序都有一个主入口,也就是main方法,main里面调用SpringApplication.run()启动整个spring-boot程序,该方法所在类需要使用@SpringBootApplication注解.
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
}
以上代码很容易看出哪些是关键,当然是@SpringBootApplication和application.run()分别是springboot加载配置和启动,下面详细说明这两块。
@SpringBootConfiguration
它就是JavaConfig形式的Spring Ioc容器的配置类使用的那个@Configuration,这里的启动类标注了@Configuration之后,本身其实也是一个IoC容器的配置类。配置类也是容器中的一个组件;@Component。如下案例说明xml和注解实现bean的定义
<?xml version="1.0" encoding="UTF-8"?><beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=“http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd”
default-lazy-init=“true”>
@EnableAutoConfiguration
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。


既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
完结
Redis基于内存,常用作于缓存的一种技术,并且Redis存储的方式是以key-value的形式。Redis是如今互联网技术架构中,使用最广泛的缓存,在工作中常常会使用到。Redis也是中高级后端工程师技术面试中,面试官最喜欢问的问题之一,因此作为Java开发者,Redis是我们必须要掌握的。
Redis 是 NoSQL 数据库领域的佼佼者,如果你需要了解 Redis 是如何实现高并发、海量数据存储的,那么这份腾讯专家手敲《Redis源码日志笔记》将会是你的最佳选择。

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
is源码日志笔记》将会是你的最佳选择。
[外链图片转存中…(img-0l2E4XSK-1711825602548)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
本文详细介绍了SpringBoot的启动过程,从@SpringBootApplication入口类开始,包括@SpringBootConfiguration的配置,@EnableAutoConfiguration的自动配置,以及启动流程的三个主要部分:SpringApplication初始化、应用启动方案和自动化配置。此外,还分享了作者的个人经历和学习资源。
2万+

被折叠的 条评论
为什么被折叠?



