Spring启动启动器注释元数据

时间:2018-04-28 18:20:49

标签: java maven spring-boot

在第34章的Spring Boot文档中;编写我们自己的spring boot starter"写道:

  

确保触发元数据生成,以便为您的密钥提供IDE帮助。

好的,我可以通过以下方式生成它:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

但为什么呢?这些元数据的目的是什么,我在哪里可以找到它们,更重要的是它们与我的IDE有什么关系(我使用的是Spring工具套件)? 我只是想在应用程序属性中使用我自己的属性,如kulatamicuda.superitem。

有人可以向我解释一下吗?我有点困惑。谢谢。

1 个答案:

答案 0 :(得分:3)

目的与为我认为的接口编写javadoc相同。

因此,如果您正在创建此启动器并且其他人都有意使用它,那么应该有一些文档。

当您创建库时,您可能理解您应该至少记录其他开发人员可以在其应用程序中使用的接口。

在此类似的情况下,您的ide(至少IDEA)将尝试在您的人工制品中找到META-INF/spring-configuration-metadata.json文件,并将为此属性提供自动完成和描述(您将在此文件中指定)。

这是一个例子: https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html

但是,如果您不想描述这些属性,那么您可以保留它,而不创建任何包含元信息的文件,它不会影响您的应用程序。

以下是IDEA的工作原理:

enter image description here

您可以看到为此项目添加的springboot启动器中定义的每个属性都有自动完成和描述。它也知道属性的类型及其默认值。