@NestedConfigurationProperty注解的作用

源码中的解释:

指示应将@ConfigurationProperties对象中的字段视为嵌套类型。此注释与实际绑定过程无关,但它被spring-boot配置处理器用作一个提示,表明字段未绑定为单个值。指定此选项后,将为字段创建嵌套组,并获取其类型。

意思就是说,在@ConfigurationProperties修饰的对象中,如果有成员属性被@NestedConfigurationProperty修饰,那么这个属性将不再是可以绑定的单个值,而是作为一个属性嵌套组。

@Getter
@Setter
public class XxlJobAdminProperties {

    private String address;
}
@Getter
@Setter
public class XxlJobExecutorProperties {

    /**
     * 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
     */
    private String appname;

    /**
     * 服务注册地址,优先使用该配置作为注册地址 为空时使用内嵌服务 ”IP:PORT“ 作为注册地址 从而更灵活的支持容器类型执行器动态IP和动态映射端口问题
     */
    private String address;

    /**
     * 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP ,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和
     * "调度中心请求并触发任务"
     */
    private String ip;

    /**
     * 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9099,单机部署多个执行器时,注意要配置不同执行器端口;
     */
    private Integer port = 9099;

    /**
     * 执行器通讯TOKEN [必填]:从配置文件中取不到值时使用默认值;
     */
    private String accessToken = "default_token";

    /**
     * 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
     */
    private String logPath = "logs/applogs/xxl-job/jobhandler";

    /**
     * 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效;
     */
    private Integer logRetentionDays = 30;

}
@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "xxl.job")
public class XxlJobProperties {

    @NestedConfigurationProperty
    private XxlJobAdminProperties admin;

    @NestedConfigurationProperty
    private XxlJobExecutorProperties executor;

}

例如上面的XxlJobProperties这个类,如果其中的属性都不加@NestedConfigurationProperty注解,那么只能配置到 xxl.job.admin 和 xxl.job.executor 这个层级而加了该注解,那么配置层级可以映射到 admin 和 executor 中的内部成员属性。

没有加该注解的可配置层级:

xxl:
  job:
    admin: xxl-job-executor-order
    executor: xxl-job-executor-order

加了该注解后的可配置层级:

xxl:
  job:
    admin:
      address: 192.168.56.10:8090/xxl-job-admin
    executor:
      address: 127.0.0.1:9007
      appname: xxl-job-executor-order
      ip: 127.0.0.1
      port: 9007
      log-path: /data/applogs/xxl-job/jobhandler
      log-retention-days: 30
      access-token: xxl-job-executor-order
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
@NestedConfigurationProperty注解Spring框架提供的一种注解,用于在@ConfigurationProperties注解中嵌套配置属性类。它的作用是将一个类中的属性作为另一个类的属性进行配置。 使用@NestedConfigurationProperty注解时,需要注意以下几点: 1. 该注解应该用于配置属性类中的嵌套属性。 2. 被注解的嵌套属性类需要提供getter和setter方法。 3. 嵌套属性类上还可以使用其他的@ConfigurationProperties注解,以便进行更复杂的配置。 与@ConfigurationProperties注解相比,@NestedConfigurationProperty注解主要用于解决嵌套属性类在使用@ConfigurationProperties注解时的问题。@ConfigurationProperties注解用于将外部配置文件中的属性值绑定到一个JavaBean对象上,而@NestedConfigurationProperty注解则用于在该JavaBean对象中嵌套其他的配置属性类。 @ConfigurationProperties注解可以将外部配置文件中的多个属性值绑定到一个JavaBean对象上,而@NestedConfigurationProperty注解则用于将一个JavaBean对象中的多个属性作为另一个JavaBean对象的属性进行配置。这样可以更好地组织和管理配置属性。 总结来说,@NestedConfigurationProperty注解用于在@ConfigurationProperties注解中嵌套配置属性类,而@ConfigurationProperties注解用于将外部配置文件中的属性值绑定到JavaBean对象上。它们可以一起使用,以便更好地组织和管理配置属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值