【发布时间】:2014-05-03 17:37:03
【问题描述】:
我有以下 JAX-RS 资源:
@POST
public Response createPerson(
final User user) {
...
}
而用户 bean 是:
public class User {
protected String lastName;
protected String role;
@DefaultValue("true")
protected Boolean active;
@DefaultValue("dd.MM.yyyy")
protected String dateFormat;
...//getters and setters
}
当我没有为 'active' 和 'dateFormat' 指定值时,我希望它们填充默认值。但它们是空的。
我已阅读 @DefaultValue 的文档,它似乎不适合我的场景。但是我怎样才能让 jersey 用默认值填充这些缺失的属性呢?
编辑:
我想使用注释而不是代码(例如在构造函数中),因为我希望能够自动生成 API 文档(例如 swagger)。 Swagger 在提供参数信息时已经支持@DefaultValue,但如果使用另一种带有注释的方法,我可以对其进行扩展。
当然,我可以将代码与特定于 swagger 的注释一起使用,但这会导致重复。我宁愿使用相同的元信息来获取应用程序逻辑和文档。我可以使用自定义注释,同时扩展球衣和招摇。
【问题讨论】:
标签: java jersey jax-rs jersey-2.0 swagger