@jsonview中空类的用途是什么?

时间:2016-01-26 19:01:03

标签: java json spring-mvc jackson

我是ajax和json的新手。最近我试图在Spring mvc中使用ajax和json实现。我使用像

这样的注释来看到教程
jdbc:jtds:sqlserver://instanciados/TestDB;instance=BENDER2

以下是视图定义

@JsonView(Views.Public.class)   

Q1。在@JsonView中使用Views.Public.class的重要性是什么,因为Public类没有定义?

Q2。为什么@jsonview是以这种方式设计的?

Q3。视图类没有正常的定义,也没有内部类(公共和内部)。你怎么称呼这类课程,通常什么时候使用?我听说过序列化中的标记界面,但我没有听说过标记类。

我问这些问题,因为我从未在java中学过这样的编码方法。这是一种设计模式吗?

1 个答案:

答案 0 :(得分:0)

@Angom原因是各种各样的事情。首先,Java注释值只能有一组非常有限的类型;简单原语(intbooleanlong),String s,枚举值,Annotation类型或Class es。

因此,当与注释一起使用时,逻辑视图的值类型的选择是有限的。许多开发人员会选择Strings,但Classes实际上有一个很好的好处:可组合性。由于您可以扩展类和接口,因此可以派生“子视图”;并且检查入选标准(杰克逊)是非常快的。

现在:如果你只需要查看ID,那么空接口或类就可以了:你真的只需要id和可能的继承层次结构。无需添加方法或值。

但是,也可以使用常规完整类,或者在这些类中添加方法。查看功能不使用这些;它不关心。因此,如果您愿意,可以使用现有的类/接口作为View ids。

但是由于拥有空类的成本不高,因此将实际代码和视图类分开通常会更简洁。