经典案例

  • 首页 经典案例 springboot启动原理流程?(springboot容器启动时可以通过哪些类进行资源初始化?)

springboot启动原理流程?(springboot容器启动时可以通过哪些类进行资源初始化?)

2024-01-16 22:28:48

1.springboot启动原理流程?

Springboot是基于spring的一个新的轻量级框架,最厉害的地方是自动配置。可以根据启动流程和相关原理查看,实现传说中的自动配置。

二、springboot的启动类入口

对于使用过springboot的技术人员来说显而易见的是,两者的区别在视觉上是很直观的:springboot有自己独立的启动类(独立程序)。

@SpringBootApplication

公共类应用程序{

公共静态void main(String[] args) {

spring application . run(application . class,args);

}

}

从上面的代码可以看出,注释定义(@SpringBootApplication)和类定义(SpringApplication.run)是最耀眼的,所以要揭开SpringBoot的神秘面纱,就要从这两个开始。

第三,只有SpringBootApplication接口使用这些注释。

@Target(ElementType。TYPE) //批注范围,其中TYPE用于描述类、接口(包括包批注类型)或枚举声明。

@ retention(保留策略。runtime)//注释的生命周期保存在类文件中(三个生命周期)。

半岛平台

@ documentated//表示此评论应该由javadoc记录。

子类@Inherited //可以继承这个注释。

@SpringBootConfiguration //继承Configuration,表示当前是一个注释类。

@EnableAutoConfiguration //借助@impo开启springboot四大神器之一springboot的标注功能。

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

1.开始加载主类。

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

2.Spring Boot环境的准备

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

3.Spring Boot的自动配置

springboot启动原理流程?(springboot容器启动时可以通过哪些类进行资源初始化?)

Spring Boot有一个智能的自动配置机制,可以根据应用程序使用的依赖库和配置文件自动配置Spring Bean。例如,如果在应用程序中引入Hibernate,Spring Boot将根据Hibernate的依赖信息自动配置一个SessionFactory Bean。这样,开发人员不需要手动配置这些Bean,并且可以将更多的精力放在业务逻辑的实现上。

4.弹簧应用的开始

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

5.实例化Web容器

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

6.应用程序已经启动。

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

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

2.启动springboot容器时,哪些类可以用于资源初始化?

当Spring Boot容器启动时,可以通过以下类初始化资源:

ApplicationRunner和CommandLineRunner接口实现类:它们允许在应用程序启动后执行自定义代码,这些代码可用于初始化资源或执行特定任务。

@PostConstruct annotation:通过将此注释添加到方法中,可以在Bean初始化后执行自定义初始化逻辑。

Spring的事件机制:可以发布自定义事件,然后使用@EventListener注释监听这些事件,并执行相应的初始化操作。

自定义Spring Bean:您可以创建一个自定义Spring Bean,并在其构造函数或初始化方法中执行资源初始化。

这些方法提供了在Spring Boot容器启动时初始化和定制资源的各种方法。

当Spring Boot容器启动时,可以通过ApplicationContext类的initApplicationContext静态方法初始化资源。

该方法接受String[] args参数,该参数表示在Spring Boot应用程序启动时传递给Spring MVC应用程序的参数。

在参数中,我们可以通过传递由特定类定义的BeanFactory对象来初始化资源。

例如,我们可以定义一个资源接口,然后通过BeanFactory实例实例化该接口的实现。这样,我们可以轻松地管理Spring Boot容器中的资源。