引言
在上一篇文章中,我们详细了解了“什么是 Spring Boot?”,是时候讨论 Spring Boot 的特性细节了。毋庸置疑,Spring Boot 功能非常丰富,这就是为什么它现在被大多数 Java 项目使用的原因。在本文中,我们将详细讨论 Spring Boot 的特性细节。
如果您参加任何 Java/Spring Boot 面试,很可能您会被要求介绍 Spring Boot 的一些重要特性。
Spring Boot 提供了多种特性,可简化应用程序的开发、部署和管理。Spring Boot 围绕“约定优于配置”的理念,最大限度地减少了对样板代码的需求,使开发人员能够专注于构建强大且功能丰富的应用程序。在本文中,我们将讨论一些关键功能,这些功能让大部分Java 开发人员偏爱使用 Spring Boot 进行 Web 程序开发。从嵌入式 Web 服务器到自动配置和广泛的库生态系统,Spring Boot 简化了开发过程,并以最小的努力创建可用于生产的应用程序。让我们逐一深入了解 Spring Boot 的突出功能。
CommandLineRunner接口(启动初始化)
CommandLineRunner 是 Spring Boot 在测试功能时非常方便的功能之一,类似于 Core Java 中线程的 run() 方法。如果我们想在 Spring Boot 应用程序启动后运行某些特定代码,可以实现 CommandLineRunner 接口。此接口提供了一个 run() 方法,该方法在 SpringApplication.run() 完成之前被调用。同样,我们还可以使用 ApplicationRunner 接口。例如,以下代码演示了如何使用 CommandLineRunner 和 run() 方法:
@Component
public class MyCommandLineRunner implements CommandLineRunner {
@Override
public void run(String... args) {
// code that you want to run only once
}
}
如果定义了多个 CommandLineRunner 或 ApplicationRunner bean,并且必须按特定顺序调用,那么您还可以使用 @Order 注释或实现 org.springframework.core.Ordered 接口。
注意:不要忘记在自定义运行器类的顶部应用 @Component 注释,否则您将不会在控制台上看到任何结果。许多开发人员都会犯这个错误,尤其是这个领域的初学者。
外部配置
Spring Boot 允许您将配置外部化,以便您可以在不同的环境中使用相同的应用程序代码。您可以使用各种外部配置源,包括 Java 属性文件、YAML 文件、环境变量和命令行参数。其中,.properties 和 .yml 是 Spring Boot 中最流行的两种格式。此外,建议在整个应用程序中坚持使用一种格式。如果在同一位置同时拥有 .properties 和 .yml 格式的配置文件,则 .properties 文件会优先被加载。
Profiles支持
Spring Profiles 提供了一种方法来分离应用程序配置的不同部分,并使其仅在特定环境中可用。我们可以在使用 @Component、@Configuration 或 @ConfigurationProperties 注解的类上添加 @Profile 注解,以限制它们在特定环境下的加载。例如,下面的代码演示了这一概念: