附录B.2. 使用注解处理器产生自己的元数据

通过使用spring-boot-configuration-processor jar, 你可以从被@ConfigurationProperties注解的节点轻松的产生自己的配置元数据文件。该jar包含一个在你的项目编译时会被调用的Java注解处理器。想要使用该处理器,你只需简单添加spring-boot-configuration-processor依赖,例如使用Maven你需要添加:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-configuration-processor</artifactId>
  4. <optional>true</optional>
  5. </dependency>

使用Gradle时,你可以使用propdeps-plugin并指定:

  1. dependencies {
  2. optional "org.springframework.boot:spring-boot-configuration-processor"
  3. }
  4. compileJava.dependsOn(processResources)
  5. }

:你需要将compileJava.dependsOn(processResources)添加到构建中,以确保资源在代码编译之前处理。如果没有该指令,任何additional-spring-configuration-metadata.json文件都不会被处理。

该处理器会处理被@ConfigurationProperties注解的类和方法,description属性用于产生配置类字段值的Javadoc说明。

:你应该使用简单的文本来设置@ConfigurationProperties字段的Javadoc,因为在没有被添加到JSON之前它们是不被处理的。

属性是通过判断是否存在标准的getters和setters来发现的,对于集合类型有特殊处理(即使只出现一个getter)。该注解处理器也支持使用lombok的@Data, @Getter@Setter注解。