返回

SpringBoot配置文件yml自定义配置详解

后端

SpringBoot 配置文件 YML 自定义配置:小白入门教程

导语:

掌控 SpringBoot 配置文件 YML 自定义配置是新手程序员迈向成功的第一步。本教程将深入剖析 YML 配置的原理和实践,从基础到进阶,助力你解锁自定义配置的奥秘。

一、YML 文件配置自定义属性

在 application.yml 文件中配置自定义属性十分简便,只需添加如下格式:

自定义属性key=自定义属性值

例如,配置一个名为 "my.name" 的属性,值为 "张三":

my.name=张三

二、@ConfigurationProperties 注解配置自定义属性

要使用 @ConfigurationProperties 注解配置属性,需创建一个 Java 类定义属性。在类中,使用 @ConfigurationProperties 注解指定属性前缀,并使用 @Bean 注解将类注入 Spring IoC 容器。

如需配置前缀为 "my" 的属性,可编写如下代码:

@ConfigurationProperties(prefix = "my")
public class MyConfig {
  private String name;
  private int age;
  // 省略getter和setter方法
}

在 SpringBoot 启动类中,使用 @Bean 注解将 MyConfig 类注入容器:

@SpringBootApplication
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }

  @Bean
  public MyConfig myConfig() {
    return new MyConfig();
  }
}

三、使用自定义属性

配置好自定义属性后,便可通过 @Value 注解在代码中使用它们。例如,获取 "my.name" 属性:

@Value("${my.name}")
private String myName;

这样,myName 变量即可获取 "my.name" 属性的值。

四、代码示例

考虑以下代码示例:

@SpringBootApplication
public class ExampleApplication {
  public static void main(String[] args) {
    SpringApplication.run(ExampleApplication.class, args);
  }
  
  @ConfigurationProperties(prefix = "example")
  public class ExampleConfig {
    private String property1;
    private int property2;
    // 省略getter和setter方法
  }
  
  @Bean
  public ExampleConfig exampleConfig() {
    return new ExampleConfig();
  }
  
  @RestController
  public class ExampleController {
    @Autowired
    private ExampleConfig exampleConfig;
    
    @GetMapping("/")
    public String getExample() {
      return "Property1: " + exampleConfig.getProperty1() + ", Property2: " + exampleConfig.getProperty2();
    }
  }
}

application.yml 配置:

example.property1=Value 1
example.property2=2

运行后,访问 http://localhost:8080/,将显示:

Property1: Value 1, Property2: 2

五、常见问题解答

1. 如何在 application.yml 和 @ConfigurationProperties 之间选择?

  • application.yml: 简单配置,无需编写 Java 代码。
  • @ConfigurationProperties: 更灵活,可进行类型安全检查和数据绑定。

2. 是否可以同时使用 application.yml 和 @ConfigurationProperties?

  • 可以,这两种方法可以结合使用。

3. 如何在 YML 文件中指定多个值?

  • 使用列表格式:key: [value1, value2, value3]

4. 如何在 @ConfigurationProperties 类中进行数据验证?

  • 使用 JSR-303 注解(如 @NotNull、@Min、@Max)。

5. 如何使用 Spring Boot Admin 查看自定义属性?

  • 在 Spring Boot Admin UI 中,转到 "Properties" 选项卡即可查看自定义属性。

结论:

掌控 SpringBoot 配置文件 YML 自定义配置将为你打开程序员职业生涯的大门。通过了解原理、使用实践和代码示例,你已掌握了这项必备技能。通过不断探索和练习,你将成为配置高手,让你的应用程序更加灵活和可配置。