这些观点有何作用?

时间:2016-05-06 16:31:08

标签: java hibernate jackson dropwizard

我正在研究一个dropwizard项目,它在其视图包中包含一系列类,如下所示:

package api.views;

public class FooView {

    public static class FindAll {
    }

    public static class Item {
    }

}

我注意到要使用此类视图的唯一地方是资源类,其方式类似于以下内容:

@GET
@Timed
@UnitOfWork
@JsonView(FooView.FindAll.class)
public Response getAll() {
     //connects to the DB via hibernate
     //returns a Response containing a JSON list of Foos in the DB
}

我不理解这些视图的作用,因为它们是空的静态类,如果它们可以修改返回的JSON。

1 个答案:

答案 0 :(得分:0)

@JsonView注释是杰克逊功能的一部分。我没有使用此功能,但文档说明了以下内容:

  

此视图中的“视图”意味着能够定义逻辑属性的子集(通过getter或字段访问的内容)以进行序列化。视图是静态定义的(使用注释),但动态选择用于序列​​化的视图(每个序列化)。

来源:http://wiki.fasterxml.com/JacksonJsonViews 对于@JsonView描述,几乎在网页末尾检查“使用JAX-RS查看”。