[spring-projects/spring-boot]从@ConfigurationProperties注释的记录中获取属性描述

2024-05-14 988 views
4

目前,配置属性注释处理器从类的字段中获取属性描述。这不适用于记录,因为它们没有字段。如果我们能够设计一些其他方式从记录来源获取属性描述,那就太好了。目前,您必须使用额外的元数据。

@param一种可能是从记录级 javadoc 中读取s:

/**
 * @param someProperty An example property to be described in the metadata.
 */
@ConfigurationProperties(prefix = "record")
public record MyRecordProperties(String someProperty) { }

在此示例中,我们已经生成了元数据someProperty

{
  "name": "record.some-property",
  "type": "java.lang.String",
  "sourceType": "com.example.recordconfigpropstest.MyRecordProperties"
}

我们的目标是description

{
  "name": "record.some-property",
  "type": "java.lang.String",
  "description": "An example property to be described in the metadata.",
  "sourceType": "com.example.recordconfigpropstest.MyRecordProperties"
}

回答

3

你好,我可以尝试做这个吗?

8

那简直太好了。感谢您的提议,@theoathayde。如果你有问题,请告诉我们。

7

您好,抱歉拖了这么久。我在处理这个问题时遇到了一些困难,我还能继续从事这个工作吗?如果是这样,我可以帮忙吗?

8

没问题,@theoathayde。我们能帮你什么吗?

9

太棒了,谢谢你。抱歉,如果这太基础了,我成功构建了代码,但我在实际运行 Spring Boot 时遇到了麻烦,因此我可以测试元数据。

7

我认为没有必要。相反,我将通过修改现有的record基于测试来测试元数据。目前的测试检查属性是否被记录,但仅此而已。可以更新这些测试以检查现在是否找到了预期的描述。您可以withDescription像之前的一些测试一样这样做。例如,参见这个。

8

嗨,我已经为此工作了一段时间,但仍然没有成功。我尝试过一些事情,比如在元数据上创建一个新方法来包含描述,我更新了测试,但失败了。您对我必须做出的改变有什么建议或想法吗?

9

@theoathayde 我团队中的很多人都在假期期间休假。恐怕要到新年我们才能研究其他想法。对于那个很抱歉。

7

当然,节日快乐,明年我们可以更多地讨论这个问题。

4

@theoathayde 你能在你的叉子上分享一个显示你迄今为止所做的更改的分支吗?这将为我们提供一些建议的基础。

5

你好,我有一些健康问题,恐怕我无法再从事这项工作了。我深感抱歉。

1

很遗憾听到您的健康问题@theoathayde。祝您康复。

4

大家好!请考虑 PR #29403 作为此问题的解决方案。

2

结束有利于 PR #29403