2012-10-08 47 views
-1

我必須生成大量的xml片段並將其存儲到我的數據庫中供以後(重新)使用。 JAXB工作正常,但我的一些問題提出了:JAXBContext管理

  1. 我應該有一個JAXBContext而對整個應用程序或DTO一個每個響應?我會保持上下文在每個根dto對象的靜態變量。 (初始化一次)
  2. 有沒有辦法在JEE6中注入編組?

我想保持樣板代碼儘可能小。

問候 米

PS:XStream的工作也沒關係,但我想堅持標準。

回答

1
  • 是的,你只需要一個JAXBContext而
  • 您可以隨時注入編組。 (最好的辦法是使用Spring)

    <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> 
        <property name="classesToBeBound"> 
         <list> 
          <value>com.package.YourClass</value> 
         </list> 
        </property> 
    </bean> 
    

我不正確地理解你的意思是「堅持標準」是什麼,但你能不能給看看JIBX。它通常比JaxB提供更好的性能

+0

謝謝!這是非常好的提示!正如我看到這個例子,我可以完成與(生產,注入)註釋相同的功能,而不會引入彈簧。我打算儘可能少地使用第三方庫,並使用提供的服務器庫。 – mkuff

+0

@Anshu - JAXB是一個標準的JSR-222(http://jcp.org/en/jsr/detail?id=222),有多個實現(Metro,MOXy等)。因爲它是一個標準,所以它是JAX-WS和JAX-RS的默認綁定層,並且自Java SE 6以來,impl包含在JDK/JRE中。 –