我有一个Spring Boot项目。我的项目中有几个XSD文件。我使用Maven-jaxb2-plugin生成了类。我使用this教程运行了一个样例Spring Boot应用程序。
import org.kaushik.xsds.XOBJECT;
@SpringBootApplication
public class JaxbExample2Application {
public static void main(String[] args) {
//SpringApplication.run(JaxbExample2Application.class, args);
XOBJECT xObject = new XOBJECT('a',1,2);
try {
JAXBContext jc = JAXBContext.newInstance(User.class);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(xObject, System.out);
} catch (PropertyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我担心的是需要将模式的所有jaxb类映射。此外,有没有Spring中可以使用的东西使我的任务更容易。我查看了Spring OXM项目,但它在xml中配置了应用程序上下文。Spring Boot是否有任何可以直接使用的内容。任何示例都将有所帮助。
编辑
我尝试了xerx593的答案,并使用主方法运行了一个简单的测试。
JaxbHelper jaxbHelper = new JaxbHelper();
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setClassesToBeBound(XOBJECT.class);
jaxbHelper.setMarshaller(marshaller);
XOBJECT xOBJECT= (PurchaseOrder)jaxbHelper.load(new StreamSource(new FileInputStream("src/main/resources/PurchaseOrder.xml")));
System.out.println(xOBJECT.getShipTo().getName());
它运行得非常好。现在我只需要使用Spring Boot插件进行插入即可。
Jaxb2Marshaller
并使用它即可。 - M. Deinumnew Jaxb2Marshaller()
有什么难的? - M. Deinum