• 中文
    • English
  • 注册
  • 查看作者
  • Spring Boot「25」外部配置元数据

    Spring Boot 应用开发过程中,经常会使用到外部配置文件,例如 application.properties。此时,一般会通过 注解,将外部配置文件中的属性映射到 Java bean 中。在今天的文章中,我们将一块儿来学习如何使用 Configuration Processor 生成 JSON 格式的外部配置元数据;然后,我们会展示 IntelliJ IDEA 是如何通过生成的 JSON 元数据来实现属性自动补全的(autocomplete)。

    当我们开发 Spring Boot 程序时,或使用其他第三方提供的 Spring Boot 组件时,肯定会遇到外部属性。但通常我们并不了解这些外部属性,某些情况下甚至不知道某些属性的存在。如果应用中使用到的外部属性能够有一个描述性的解释文件,肯定能够提高我们对使用组件或别人对我们提供的应用的理解和掌握。

    Spring Boot 提供了 Configuration Processor 机制,来生成外部配置文件的描述性源信息。这种信息不但可以帮制使用者更好地使用外部属性,而且 IDE 等开发工具也可以读取这些信息,以提供自动补全等提高开发效率的功能。

    01-生成配置元数据

    需要用到如下依赖:

    首先,定义一个 DatabaseProperties 类,用来封装 开头的属性。

    用于封装的 configuration-metadata.properties 内容如下:

    然后,创建一个应用类 DatabaseApplication,作为运行程序的容器。

    最后,创建测试类,测试是否正确加载外部属性。

    在 IntelliJ IDEA 中,如果 classpath 下包含了 configuration-processor,则会自动地在 target\classes\META-INF 下生成元数据文件 spring-configuration-metadata.json。其内容类似于:

    其中的属性解释如下:

    • groups,属性分组,例如上例中的 database 和 database.server。

    • properties,具体属性值,name 为属性名;type 为类型;description 为描述,可根据 javadoc 自动生成;sourceType 为类型信息。

    • hints,是额外的提示信息。

    02-IntelliJ IDEA 使用元数据实现代码提示

    上述生成的元信息,IDE 也可读取到,并据此提供自动补全提示功能。例如:

    Spring Boot「25」外部配置元数据

    若要使用 IntelliJ IDEA 实现自动提示自定义 properties 功能,同样需要 spring-boot-configuration-processor 在项目的 classpath 下。

    如果我们在 spring-configuration-metadata.json 中加入如下内容,在我们使用对应的属性值时,IDE 会提示我们候选值。

    其效果如图所示:

    Spring Boot「25」外部配置元数据

    refs

  • 0
  • 0
  • 0
  • 59
  • 请登录之后再进行评论

    登录
  • 任务
  • 实时动态
  • 发布
  • 单栏布局 侧栏位置: