当前位置:首页>维修大全>综合>

springboot启动原理流程(springboot启动流程和扩展点)

springboot启动原理流程(springboot启动流程和扩展点)

更新时间:2024-06-13 20:05:44

springboot启动原理流程

Spring Boot是Spring Framework的一个扩展,它简化了Spring应用程序的开发和部署流程,并提供了一种快速创建可独立运行Spring应用程序的方式。下面是Spring Boot启动原理的简单流程:

1. 启动类(Main Class)的加载

Spring Boot应用程序的启动类是一个Java类,其中包含了main()方法,它是整个应用程序的入口。在启动过程中,Java虚拟机(JVM)会首先加载该类。

2. Spring Boot环境的准备

在启动类加载完成后,Spring Boot会在应用程序的classpath中查找application.properties或application.yml文件,读取其中的配置信息,然后初始化Spring环境并创建ApplicationContext对象。此外,Spring Boot还会自动扫描所有带有注解的类,并将它们注册到Spring容器中。

3. Spring Boot的自动配置

Spring Boot具有一套智能的自动配置机制,可以根据应用程序所使用的依赖库和配置文件自动配置Spring Bean。例如,如果应用程序中引入了Hibernate,Spring Boot会根据Hibernate的依赖信息自动配置一个SessionFactory Bean。这样,开发人员就无需手动配置这些Bean,可以更加专注于业务逻辑的实现。

4. SpringApplication的启动

当Spring Boot环境准备好之后,就会创建一个SpringApplication对象。该对象负责启动Spring Boot应用程序,并将所有Bean注册到Spring容器中。它还可以接收并处理控制台命令行参数,以及在应用程序启动和关闭时执行一些回调方法。

5. 实例化Web容器

如果应用程序是一个Web应用程序,则Spring Boot会自动实例化嵌入式Web服务器,如Tomcat、Jetty或Undertow等。Spring Boot将创建WebServer对象,并将所有Servlet、Filter和Listener注册到其中。最后,Web容器会启动,并开始监听来自客户端的HTTP请求。如果应用程序不是Web应用程序,则这一步可以略过。

6. 应用程序启动完成

当Web容器启动之后,应用程序就开始监听来自客户端的HTTP请求,并根据配置文件中的路由规则进行处理。此时,应用程序已经启动完成,并可以提供相关的服务。如果应用程序需要结束,可以通过调用SpringApplication对象的close()方法来关闭Spring容器和Web容器并释放资源。

以上就是Spring Boot启动原理的基本流程,整个过程涉及到了多个组件和技术点,包括Java虚拟机、Spring Framework、Web容器等。了解这些原理可以帮助开发者更好地理解和使用Spring Boot。

springboot是基于spring的新型的轻量级框架,最厉害的地方当属自动配置。它可以根据启动流程和相关原理来看看,实现传奇的自动配置

二、springboot的启动类入口

用过springboot的技术人员很显而易见的两者之间的差别就是视觉上很直观的:springboot有自己独立的启动类(独立程序)

@SpringBootApplication

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

从上面代码可以看出,Annotation定义(@SpringBootApplication)和类定义(SpringApplication.run)最为耀眼,所以要揭开SpringBoot的神秘面纱,我们要从这两位开始就可以了。

三、单单是SpringBootApplication接口用到了这些注解

@Target(ElementType.TYPE) // 注解的适用范围,其中TYPE用于描述类、接口(包括包注解类型)或enum声明

@Retention(RetentionPolicy.RUNTIME) // 注解的生命周期,保留到class文件中(三个生命周期)

@Documented // 表明这个注解应该被javadoc记录

@Inherited // 子类可以继承该注解

@SpringBootConfiguration // 继承了Configuration,表示当前是注解类

@EnableAutoConfiguration // 开启springboot的注解功能,springboot的四大神器之一,其借助@impo

更多栏目