簡體   English   中英

是否有注釋來向JAXB注冊類包?

[英]Is there an annotation to register a package of classes with JAXB?

我的理解是JAXB必須知道可能需要編組或解組的所有類 @XmlSeeAlso批注可用於使JAXB知道它無法自動檢測到的類,如下所示:

@XmlSeeAlso({Dog.class,Cat.class,Mouse.class})

有沒有可用於指定包而不是列出每個單獨類的注釋? 如果上面的類在com.zoo.animals包中,我想這樣做:

@XmlSeeAlso("com.zoo.animals")

附加信息

  1. 我希望JAXB知道的類是由專有工具自動生成的。
  2. 此程序包中有數百個類。
  3. 這些類未使用任何JAXB批注進行批注,但從理論上講,如果絕對必要,則可以這樣做。
  4. 沒有package-infojaxb.properties文件或類似的東西可以幫助JAXB發現這些類。 同樣,如果至關重要的話,生成這樣的文件並不是不可行的。
  5. 沒有知道所有類的工廠對象。
  6. 我相信我想實現的目標可以使用JAXBContext.newInstance( "com.acme.foo:com.acme.bar") 在代碼中完成,但目前我不與該對象進行交互,並且我並不想這樣做是等效的注釋。

在一個或多個程序包名稱上創建JAXBContext ,JAXB將在那些程序包中查找jaxb.index文件或ObjectFactory以確定用於在其上創建JAXBContext的類。 JAXB本身不執行任何軟件包掃描。

您還可以在一個類數組上創建一個JAXBContext 您可以利用自己的包裹掃描儀來制作此陣列。

您提到您不直接與JAXBContext交互。 根據您的環境,有多種方法可以解決此問題。 例如,在JAX-RS中,您可以使用ContextResolver插入此邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM