第三节 理解 SpringApplication1
需积分: 0 100 浏览量
更新于2022-08-03
收藏 316KB PDF 举报
理解 SpringApplication
SpringApplication 是 Spring Boot 框架中一个核心组件,负责加载和配置应用程序的上下文环境。在本节中,我们将详细了解 SpringApplication 的基本使用、运行机制、自定义配置、API 调整等方面的知识点。
SpringApplication 基本使用
SpringApplication 是一个静态工厂类,提供了一个静态方法 `run()`,用于启动 Spring Boot 应用程序。该方法接受两个参数:应用程序的主类(Main Class)和命令行参数数组。例如:
```java
SpringApplication.run(DiveInSpringBootApplication.class, args);
```
这个方法将创建一个 SpringApplication 实例,并将其配置为使用指定的主类和命令行参数数组。
SpringApplication 运行机制
当我们调用 `run()` 方法时,SpringApplication 会执行以下步骤:
1. 推断 Web 应用类型:根据 ClassPath 中的实现类,推断出 Web 应用的类型,包括 Web Reactive、Web Servlet 和非 Web 应用。
2. 推断引导类(Main Class):根据 Main 线程执行堆栈判断实际的引导类。
3. 加载应用上下文初始器(ApplicationContextInitializer):利用 Spring 工厂加载机制,实例化 ApplicationContextInitializer 实现类,并排序对象。
4. 创建应用上下文(ApplicationContext):根据配置和环境信息,创建一个 ApplicationContext 实例。
5. 启动应用程序:使用创建的 ApplicationContext 实例启动应用程序。
自定义 SpringApplication
SpringApplication 提供了多种方式来自定义配置,包括:
1. 通过 `setBannerMode()` 方法设置 Banner 模式。
2. 通过 `setWebApplicationType()` 方法设置 Web 应用类型。
3. 通过 `setAdditionalProfiles()` 方法设置额外的配置文件。
4. 通过 `setHeadless()` 方法设置是否启用头less 模式。
例如:
```java
SpringApplication springApplication = new SpringApplication(DiveInSpringBootApplication.class);
springApplication.setBannerMode(Banner.Mode.CONSOLE);
springApplication.setWebApplicationType(WebApplicationType.NONE);
springApplication.setAdditionalProfiles("prod");
springApplication.setHeadless(true);
```
通过 SpringApplicationBuilder API 调整
SpringApplicationBuilder 是一个 fluent API,提供了多种方式来自定义 SpringApplication 配置。例如:
```java
new SpringApplicationBuilder(DiveInSpringBootApplication.class)
.bannerMode(Banner.Mode.CONSOLE)
.web(WebApplicationType.NONE)
.profiles("prod")
.headless(true)
.run(args);
```
配置 Spring Boot Bean 源
Spring Boot 提供了多种方式来配置 Bean 源,包括:
1. Java 配置 Class:用于 Spring 注解驱动中 Java 配置类,大多数情况是 Spring 模式注解所标注的类,如 `@Configuration`。
2. XML 上下文配置文件:用于 Spring 传统配置驱动中的 XML 文件。
这些配置源将被加载到 ApplicationContext 中,并被用于创建 BeanDefinition。
SpringApplication 是 Spring Boot 框架中一个核心组件,负责加载和配置应用程序的上下文环境。通过了解 SpringApplication 的基本使用、运行机制、自定义配置和 API 调整,我们可以更好地使用 Spring Boot 框架来构建高效、可靠的应用程序。
我有多作怪
- 粉丝: 30
- 资源: 298
最新资源
- 国际象棋检测11-YOLO(v7至v9)、COCO、Darknet、Paligemma、VOC数据集合集.rar
- 使用Python和matplotlib库绘制爱心图形的技术教程
- Java外卖项目(瑞吉外卖项目的扩展)
- 必应图片壁纸Python爬虫代码bing-img.zip
- 基于Pygame库实现新年烟花效果的Python代码
- 浪漫节日代码 - 爱心代码、圣诞树代码
- 睡眠健康与生活方式数据集,睡眠和生活习惯关联分析()
- 2024~2025(1)Oracle数据库技术A卷-22软单、软嵌.doc
- 国际象棋检测10-YOLO(v5至v9)、COCO、CreateML、Paligemma数据集合集.rar
- 100个情侣头像,唯美手绘情侣头像