该注解是什么?
@NestedConfigurationProperty 注解的作用是标识嵌套配置属性,并告诉 Spring 解析器将其作为内部属性进行处理。它通常用于配置类中的复杂对象属性。
案例
假设有一个配置类 MyConfiguration,其中存在一个复杂对象属性 MyNestedProperty。可以在 MyConfiguration 类中使用 @NestedConfigurationProperty 注解标识该属性。如下所示:
@Configuration
public class MyConfiguration {
@NestedConfigurationProperty
private MyNestedProperty nestedProperty;
// getter 和 setter 省略
}
public class MyNestedProperty {
private String name;
private int age;
// getter 和 setter 省略
}
在这个案例中,MyConfiguration 类中的 nestedProperty 属性被标记为嵌套属性,表示它是一个复杂对象属性。
加上 @NestedConfigurationProperty 注解之后,当在配置文件中进行属性配置时,可以使用点分隔符表示嵌套属性的层级关系,如下所示:
myConfiguration:
nestedProperty:
name: John
age: 27
如果没有在配置文件中对 nestedProperty 进行配置,那么该属性会被赋予默认值。对于引用类型的属性,默认值是 null。所以,在上述的例子中,如果没有在配置文件中配置 nestedProperty,那么 MyConfiguration 的实例中的 nestedProperty 属性会被赋值为 null。