SpringBootApplication初始化

问题:在执行main方法,也就是run得时候,执行了哪些初始化动作?

根据源码可以发现,run方法其实就是new SpringApplication()

bug跟踪可以发现:

prepareContext方法主要作用是应用上下文属性得设置,将核心启动类生成一个实列对象存放在容器中beanDefinitionMap中;

第一个:初始化servlet环境

第二个:初始化classpath下得META-INf/spring.factory中已经配置好的applicationContextInitializer

第三个:初始化配置applicationListener

第四个:调用栈,判断main方法得类名

spring容器在启动得时候,会将类解析成spring内部得beanDefinition结构,并将beanDefinition存储到defaultlistableBeanFactory得map中,

Spring Boot 的初始化过程涉及到 Spring Boot 应用程序的启动和运行机制,通常由以下几个步骤组成: 1. **创建 Main 方法**:通常在 Spring Boot 应用程序中会有一个包含 `main` 方法的主类,它使用 `SpringApplication.run()` 静态方法来启动 Spring 应用。 2. **实例化 SpringApplication**:在 `main` 方法中,通常会创建 `SpringApplication` 类的实例,这个类是 Spring Boot 的入口点,它负责启动和引导应用程序。 3. **运行应用程序**:通过调用 `SpringApplication` 的 `run` 方法来启动应用程序。这个方法会加载 Spring 应用程序上下文,并启动嵌入式的 Servlet 容器(如果需要的话)。 4. **配置自动装配**:Spring Boot 应用程序会使用约定优于配置的原则,自动配置应用程序上下文,这依赖于类路径上的依赖和已定义的 Bean。Spring Boot 提供了 `@SpringBootApplication` 注解,它是一个组合注解,包含了 `@Configuration`、`@EnableAutoConfiguration` 和 `@ComponentScan`。 5. **启动嵌入式 Web 服务器**:如果应用程序是一个 Web 应用,Spring Boot 会默认配置嵌入式的 Servlet 容器(如 Tomcat、Jetty 或 Undertow)。它会根据项目依赖来自动配置。可以通过配置文件来调整嵌入式服务器的端口、上下文路径等。 6. **应用程序启动后**:一旦 Spring 应用程序上下文加载完毕,Spring Boot 会发布一个 `ApplicationReadyEvent`,这时应用程序就可以处理请求了。 在实际开发中,开发者可以自定义 `@Configuration` 类来配置自己的 Bean,也可以通过修改 `application.properties` 或 `application.yml` 配置文件来自定义配置项,或者通过实现 `EmbeddedServletContainerCustomizer` 接口来自定义嵌入式 Servlet 容器的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值