@NestedConfigurationProperty 这个注解的作用

一、核心作用

1.1 主要功能

这个注解告诉 Spring Boot:

  • 这是一个嵌套的配置属性对象,不是简单的值

  • 需要递归处理这个对象内部的配置

  • 启用 IDE 的配置元数据生成,提供代码提示

1.2 解决的问题

没有这个注解时,嵌套对象的配置不会自动绑定,也不会出现在配置元数据中。

1.3 使用示例

@ConfigurationProperties(prefix = "app")
@Data
public class AppProperties {
    
    private String name;
    
    @NestedConfigurationProperty
    private DatabaseProperties database;
    
    @NestedConfigurationProperty
    private SecurityProperties security;
    
    // Getter/Setter
}

@Data
public class DatabaseProperties {
    private String url;
    private String username;
    private String password;
    private int poolSize = 10;
}

@Data
public class SecurityProperties {
    private boolean enabled = true;
    private List<String> allowedIps = new ArrayList<>();
    private OAuthProperties oauth;
}

@Data
public class OAuthProperties {
    private String clientId;
    private String clientSecret;
}

对应配置文件(application.yml)

app:
  name: My Application
  database:
    url: jdbc:postgresql://localhost:5432/mydb
    username: admin
    password: secret
    pool-size: 20
  security:
    enabled: true
    allowed-ips:
      - 192.168.1.1
      - 192.168.1.2
    oauth:
      client-id: my-client
      client-secret: my-secret

  

end!

posted @ 2026-05-10 14:03  君莫笑我十年游  阅读(17)  评论(0)    收藏  举报