如何在属性文件中提供文本以提供春季休息服务?

时间:2017-01-19 09:09:10

标签: java spring rest swagger

我正在用swagger创建我的spring restful service文档。

示例请求处理程序方法及其下面的文档。它有效:

@ApiOperation(value = "Returns user details", notes = "Returns a complete list of users details with a date of last modification.", response = User.class)
public Response getUser(@ApiParam(name = "userName", value = "Alphanumeric login to the application", required = true) @PathParam("userName") String userName) {
...
}

但是我希望将请求处理程序方法的文本提供给属性文件中的swagger注释(这样做是为了不使用文档文本增加类大小)。
因此,我创建了一个名为" application-swagger.properties"并在" application.properties"中启用它(spring.profiles.active =招摇)。 当我创建如下的api文档时,文本没有显示。

 application-swagger.properties:
 value=Returns user details
 notes=Returns a complete list of users details with a date of last modification.

控制器类:

@Controller
@Profile("swagger")
public class UserController{
    .
    .
    @ApiOperation(value = "${value}", notes = ${notes}", response = User.class)
    public Response getUser(@ApiParam(name = "userName", value = "Alphanumeric login to the application", required = true) @PathParam("userName") String userName) {
    ...
    }
    .
    .
}

有没有办法将文本放入属性文件中的swagger注释?谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

回答这个问题一直很晚,但如果有人需要帮助,可以参考。

步骤:

  1. 创建一个属性文件,例如swagger.properties
  2. 输入您想要的消息作为键值对,其中键将用作占位符 - 例如person.id =此人的唯一标识符
  3. 而不是注释文本插入占位符 - 例如$ {person.id}
  4. 在课程级别注册配置中的属性文件 - 例如。 @PropertySource("类路径:swagger.properties&#34)
  5. 使用Spring Boot 1.5和Swagger 2.8,不确定以前的版本。

    从详细的article中提取的相关内容。

答案 1 :(得分:0)

您不能这样做,因为注释值需要一个常量,但在您的场景中它不是常量。 请参考accected values in the annotaion java doc,说它必须是常量。

在您的情况下,最简单/可读的方法是将所有常量移动到单独的类而不是属性文件中。