当前位置: 首页 > 知识库问答 >
问题:

使用招摇注释显示自定义HashMap键

党星鹏
2023-03-14

我正试图从Java代码生成Swagger文档,我的嵌套模型属性之一是HashMap。生成的示例如下所示:

      "additionalProp1": {
        "customObject": {}
      },
      "additionalProp2": {
        "customObject": {}
      },
      "additionalProp3": {
        "customObject": {}
      }

我需要它看起来像是:

      "objectName": {
        "customObject": {}
      }

换句话说,我需要告诉他们additionalProp字符串应该是什么,最好不要重复三次。有没有办法用夸张的注释来做到这一点?我不想硬编码一个完整的例子,因为CustomObject本身有很多属性,而且仍然在不断变化。有没有可能按照

@ApiModelProperty(example=“objectName:{package.CustomObject}”)

(除了真正有效的东西)?

我尝试过以这种和其他方式使用@ApiModelProperty,但到目前为止没有成功。

@ApiModelProperty
public HashMap<String, CustomObject> getObjectMap(){
    return objectMap;
}

我用的是1.5.18大摇大摆的罐子。到目前为止,我只能找到使用直接yaml或json操作解决的类似问题。

共有1个答案

微生俊捷
2023-03-14

我确实有一个hacky解决方案,其中我制作了一个虚拟类,如下所示:

public class SwaggerObject {
    public CustomObject getObjectName() {
        return null;
    }
}

并在主代码中添加:

@ApiModelProperty(dataType="package.SwaggerObject")
public HashMap<String, CustomObject> getObjectMap(){
    return objectMap;
}

从而产生

"objectName": {
  "customObject": {}
}

然而,需要一个全新的类似乎很傻。它还将虚拟类添加到底部的模型中,这可能会令人困惑。

 类似资料:
  • 我发现了几个与此相关的(不是重复的)问题,但它们不能让我满意。 我无法理解在哪里以及为什么要使用? 我在一本书中读到了一个自定义注释的示例,但没有详细解释。 myMeth()内的输出与预期一致。 关于这个例子,我有几个问题。 1-如何在此程序中使用和?或

  • 我正在尝试使用Spring安全注释,如@PreAuthorize和@安全,但我希望评估用户不是在一个角色上,而是他们是否拥有对特定实体的权限,在这种情况下是一家公司。在我的控制器中,我收到一个超文本传输协议请求,其中包含一个firmId作为参数,我想确保这个用户被允许进入这家公司。是否可以使用当前的Spring安全注释?。我正在寻找一个优雅的解决方案,我一直在寻找自定义约束验证器作为jsr303规

  • 我在网上搜索了一个关于如何使用Spring AOP调用自定义方法注释的清晰示例,但没有找到一个清晰的示例。 我正在构建一个框架,以便在调用任何POJO上的某些方法时在上下文中注入用户配置文件。 框架API应该通过自定义方法注释调用,例如。我可以构建注释部分和解析器,我的问题是在调用带注释的方法时调用我的解析器的最佳方式是什么。 我们正在使用Spring 3.0,想知道配置Spring框架以理解那些

  • 目前,我将辅助注射与命名参数一起使用,如下所示: 这很棒。但是我认为使用字符串作为参数的标识符有点难看。我想做的是以下内容: 所以本质上我想要自定义辅助注释。有办法做到这一点吗?

  • 问题内容: 注释如何与Java一起使用?以及如何创建这样的自定义注释: 基本上,我需要保留的POJO在持久化时像这样进行序列化: 这样,实际的生成/持久对象是这样的: 任何想法如何实现这一点? 问题答案: 如果创建自定义注释,则必须使用此处的 API 示例进行处理。您可以参考如何声明注释。 这是Java中的示例注释声明的样子。 并被称为。 表示您想在运行时保留注释,并且可以在运行时访问它。 表示您