Solon

五、插件 Spi 的配置提示元信息

</> markdown

社区成员(小易)已启动 solon-idea-plugin 项目。将为在 idea 上开发的 solon 项目提供 “项目模板”、“配置提示” 的能力。经几次讨论,确定配置提示的元信息配置方案下如:

1、约定

文件存放位置为插件包的:

resource/META-INF/solon/solon-configuration-metadata.json

采用 json 格式,分两个大属性:

{
  "properties": [],
  "hints": []
}

2、具体字段说明

properties 字段说明
属性类型说明
namestring属性的全名。名称使用小写句点分隔的形式(例, server.port)。此属性为必需。
typestring属性的数据类型(例如,java.lang.String),或者完整的泛型类型(例, java.util.Map<java.lang.String, com.example.MyType>)。此属性为必需。
defaultValueobject默认值。非必需。
descriptionstring属性描述(简短、易懂)。非必需。
hints 字段说明
属性类型说明
namestring属性的全名。此属性为必需。
values[]用户可选择的值列表。
- valueobject值。
- descriptionstring描述(简短、易懂)。

3、完整格式示例:

{
  "properties": [
    {
      "name": "server.port",
      "type": "java.lang.Integer",
      "defaultValue": "8080",
      "description": "服务端口"
    },
    {
      "name": "cache.driverType",
      "type": "java.lang.String",
      "defaultValue": "local",
      "description": "缓存驱动类型"
    },
    {
      "name": "beetlsql.inters",
      "type": "java.lang.String[]",
      "description": "数据管理插件列表"
    }
  ],
  "hints": [
    {
      "name": "cache.driverType",
      "values": [
        {
          "value": "local",
          "description": "本地缓存"
        },
        {
          "value": "redis",
          "description": "Redis缓存"
        },
        {
          "value": "memcached",
          "description": "Memcached缓存"
        }
      ]
    }
  ]
}