Spring @XmlSee也是继承
首先,我是JAXB和Spring领域的新手,因此如果我错过了一些非常明显的东西,如果有人能指出而不是不回答,我会非常感激我试图在这里寻找解决方案,但找不到好的答案 我有一堆子类DTO(比如A1、A2、A3),它们继承自同一个抽象类a。我希望rest查询的结果返回子类类型的列表。我用下面的类来表示结果Spring @XmlSee也是继承,spring,jaxb,Spring,Jaxb,首先,我是JAXB和Spring领域的新手,因此如果我错过了一些非常明显的东西,如果有人能指出而不是不回答,我会非常感激我试图在这里寻找解决方案,但找不到好的答案 我有一堆子类DTO(比如A1、A2、A3),它们继承自同一个抽象类a。我希望rest查询的结果返回子类类型的列表。我用下面的类来表示结果 @XmlRootElement(name="result") @XmlSeeAlso({A1.class, A2.class, A3.class}) public class AResult<
@XmlRootElement(name="result")
@XmlSeeAlso({A1.class, A2.class, A3.class})
public class AResult<T>
{
...
}
但从我在这个网站和其他地方所做的研究来看,我认为JAXB不可能做到这一点
感谢您的帮助。JAXB不会扫描您的类路径,以查找可能恰好是
AResult
的子类的类(这将相当慢!),而是依赖于了解它可能必须创建实例的所有类。@xmlseea
注释所做的就是使用列出的其他类扩展上下文
然而,还有许多其他方法。例如,您可以创建一个标记为的类,该类知道如何生成您关心的子类。或者你可以尝试使用。唉,我只在我自己的代码中使用了基于
@xmlseea
的方法,所以我无法根据经验进行评论。谢谢你的帮助Donal。我是这样绕过这个问题的:1。创建扩展HttpMessageConverter的CustomJaxb2RootElementMessageConverter。2.在我的自定义类中,将上下文作为路径传递,并在这些包中包含jaxb.index文件。3.将AnnotationMethodHandlerAdapter和RequestMappingHandlerAdapter的messageConverters更改为使用我的自定义类。
@XmlSeeAlso({(subclasses of A.class})