核心功能
本节深入探讨 Spring Boot 的细节。在这里,您可以了解您可能想要使用和自定义的关键功能。如果您还没有这样做,您可能希望阅读 教程 和 使用 Spring Boot 进行开发 部分,以便您对基础知识有良好的了解。
章节摘要
📄️ SpringApplication
SpringApplication 类提供了一种便捷的方式来引导从 main() 方法启动的 Spring 应用程序。在许多情况下,你可以委托给静态的 SpringApplication.run(Class, String…) 方法,如下例所示:
📄️ 外部化配置
Spring Boot 允许你将配置外部化,以便可以在不同的环境中使用相同的应用程序代码。你可以使用多种外部配置来源,包括 Java 属性文件、YAML 文件、环境变量和命令行参数。
📄️ 配置文件
Spring Profiles 提供了一种隔离应用程序配置部分的方式,使其仅在特定环境中可用。任何 @Component、@Configuration 或 @ConfigurationProperties 都可以用 @Profile 标记,以限制其加载时机,如下例所示:
📄️ 日志记录
Spring Boot 使用 Commons Logging 进行所有内部日志记录,但底层的日志实现是开放的。默认配置为 Java Util Logging、Log4j2 和 Logback 提供了支持。在每种情况下,日志记录器都预先配置为使用控制台输出,并且还提供了可选的文件输出功能。
📄️ 国际化
Spring Boot 支持本地化消息,以便您的应用程序能够满足不同语言偏好的用户需求。默认情况下,Spring Boot 会在类路径的根目录下查找 messages 资源包。
📄️ 面向切面编程
Spring Boot 为面向切面编程(AOP)提供了自动配置。你可以在 Spring Framework 参考文档中了解更多关于 Spring 中的 AOP 内容。
📄️ JSON
Spring Boot 提供了与三种 JSON 映射库的集成:
📄️ 任务执行与调度
在上下文中没有 Executor bean 的情况下,Spring Boot 会自动配置一个 AsyncTaskExecutor。当启用了虚拟线程(使用 Java 21+ 并将 spring.threads.virtual.enabled 设置为 true)时,这将是一个使用虚拟线程的 SimpleAsyncTaskExecutor。否则,它将是一个具有合理默认值的 ThreadPoolTaskExecutor。无论哪种情况,自动配置的执行器将自动用于:
📄️ 开发时服务
开发时服务提供了在开发应用程序时所需的外部依赖项。它们仅在开发过程中使用,并在应用程序部署时被禁用。
📄️ 创建你自己的自动配置
如果你在一家开发共享库的公司工作,或者你正在开发一个开源或商业库,你可能希望开发自己的自动配置。自动配置类可以打包在外部 JAR 文件中,并且仍然能被 Spring Boot 自动识别。
📄️ Kotlin 支持
Kotlin 是一种面向 JVM(以及其他平台)的静态类型语言,它允许编写简洁而优雅的代码,同时提供了与现有用 Java 编写的库的互操作性。
📄️ SSL
Spring Boot 提供了配置 SSL 信任材料的能力,这些材料可以应用于多种类型的连接以支持安全通信。使用前缀为 spring.ssl.bundle 的配置属性可以指定命名的信任材料集及其相关信息。