首页 > 文章列表 > Spring Boot 中的配置属性是如何绑定的?

Spring Boot 中的配置属性是如何绑定的?

配置属性
419 2024-04-23

Spring Boot 中的配置属性可从属性源中绑定至配置属性类,包括应用程序属性文件、环境变量和命令行参数。 属性绑定通过 @ConfigurationProperties 注解完成。 实战案例:创建配置属性类,绑定属性源,并获取配置属性。

Spring Boot 中的配置属性是如何绑定的?

Spring Boot 中配置属性的绑定

Spring Boot 中提供了强大的配置属性机制,它允许我们从各种来源(如应用程序属性文件、环境变量和命令行参数)轻松地绑定配置值到我们的应用程序。

配置属性类的创建

首先,我们需要创建一个配置属性类来声明配置属性的字段和类型。例如,以下类定义了两个配置属性:

@ConfigurationProperties("my.app")
public class AppConfig {
    private String name;
    private int port;

    // getter and setter methods
}

属性源

在 Spring Boot 中,配置属性可以从各种属性源中绑定。最常见的属性源包括:

  • 应用程序属性文件:位于 src/main/resources/application.properties 中,包含键值对。
  • 环境变量:系统环境变量,以 MY_APP_NAME 等格式命名。
  • 命令行参数:--my.app.name=value 等格式传递给应用程序。

属性绑定

Spring Boot 会自动将配置属性从属性源绑定到配置属性类。此绑定通过 @ConfigurationProperties 注解完成。

实战案例

以下是一个实战案例,展示了如何在 Spring Boot 应用程序中使用配置属性:

@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
        AppConfig config = beanFactory.getBean(AppConfig.class);

        System.out.println("Name: " + config.getName());
        System.out.println("Port: " + config.getPort());
    }
}

在这个示例中,我们创建了一个 AppConfig 类,并使用 @ConfigurationProperties 注解将其声明为配置属性类。然后,我们使用 beanFactory 获取 AppConfig bean,并打印配置的属性值。

运行此应用程序并提供 application.properties 文件:

my.app.name=My Application
my.app.port=8080

您应该会在控制台中看到输出:

Name: My Application
Port: 8080