Spring Boot启动原理
时间: 2023-11-12 18:49:53 浏览: 57
Spring Boot自动装配原理是通过条件注解和Spring的条件化配置机制实现的。在启动应用程序时,Spring Boot会扫描classpath下的所有类,并根据条件注解来判断哪些类需要被自动装配。条件注解包括@ConditionalOnClass、@ConditionalOnMissingBean、@ConditionalOnProperty等。这些注解可以根据类的存在、Bean的存在、属性的值等条件来判断是否需要自动装配。如果满足条件,Spring Boot会自动创建Bean并注入到容器中,从而实现自动装配的功能。
相关问题
Spring Boot启动原理是什么呢?
Spring Boot的启动原理可以分为以下几个步骤:
1. 加载并解析Spring Boot的配置文件:Spring Boot会首先加载并解析classpath下的application.properties或application.yml文件,将其中的配置项解析为Spring Boot内部的配置属性。
2. 创建并启动Spring应用上下文:Spring Boot会创建一个Spring应用上下文,加载应用中的所有bean,并为它们自动配置所需的依赖关系。Spring Boot提供了很多自动配置的starter模块,可以根据应用所需的功能,自动配置相关的bean和依赖。
3. 执行Spring Boot的自动配置:Spring Boot会根据classpath中的jar包和配置文件中的属性,自动配置应用所需的bean和依赖关系。这些自动配置是通过Spring Boot的条件注解实现的,只有在满足特定条件的情况下才会被执行。
4. 启动Spring MVC:如果应用中包含Spring MVC相关的jar包,Spring Boot会自动配置并启动Spring MVC框架,同时会自动配置一些常用的MVC组件,如ViewResolver、HandlerMapping等。
5. 启动内嵌的Web服务器:Spring Boot支持内嵌的Web服务器,如Tomcat、Jetty等。在启动Spring Boot应用时,会根据配置文件中的属性,自动配置并启动内嵌的Web服务器,同时将Spring应用上下文注册到Web服务器中。
总的来说,Spring Boot的启动原理是通过自动化配置和条件注解,根据应用所需的功能,自动配置相关的bean和依赖关系,并启动内嵌的Web服务器。这种方式可以大大简化应用的开发和部署,提高开发效率。
spring boot启动原理
Spring Boot 启动时,会执行以下步骤:
1. 加载 Spring Boot 配置类
Spring Boot 会扫描主配置类(被 @SpringBootApplication 注解标注的类)所在的包及其子包下所有的类,并将这些类作为 Bean 定义加载到 Spring 容器中。
2. 加载外部配置文件
Spring Boot 会加载 application.properties 或 application.yml 配置文件中的配置信息,并将其作为 Spring 容器中的 Bean 定义。
3. 执行 SpringApplication.run()
SpringApplication 是 Spring Boot 的核心类,在该类的 run() 方法中完成了 Spring Boot 应用的启动过程。其中,会创建 Spring 应用上下文(ApplicationContext),加载 Bean 定义,执行自动配置,启动嵌入式 Web 服务器等操作。
4. 启动嵌入式 Web 服务器
Spring Boot 默认使用嵌入式 Tomcat、Jetty 或 Undertow 作为 Web 服务器,启动该 Web 服务器并监听指定的端口。
5. 执行 CommandLineRunner
如果 Spring Boot 应用中有实现了 CommandLineRunner 接口的 Bean,Spring Boot 会在容器启动完成后执行其 run() 方法,用于执行一些特定的初始化操作。
以上就是 Spring Boot 启动的基本流程。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)