English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JAXB ist Java-Architektur für XML-BindingAbkürzung. Es ermöglicht Java-Entwicklern, Java-Klassen in XML-Representation zu映射en. JAXB kann verwendet werden, um Java-Objekte in XML zu serialisieren und umgekehrt.
Es ist das OXM (Object XML Mapping) oder O/M-Framework.
Die Vorteile von JAXB erfordern keine Erstellung oder Verwendung von SAX oder DOM-Parser, auch keine Callback-Methoden zu schreiben.
Sie müssen JAXB verwenden, um die Java-Objekte in XML zu serialisieren, um die folgenden Dateien zu erstellen:
Employee.java applicationContext.xml Client.java
Um dieses Beispiel auszuführen, müssen Sie laden:
Spring Core jar-Datei Spring Web jar-Datei
Laden Sie alle jar-Dateien von Spring herunter, einschließlich core, web, aop, mvc, j2ee, remoting, oxm, jdbc, orm, etc.
Employee.java
Wenn drei Eigenschaften id, Name und Gehalt definiert sind. Wir verwenden in dieser Klasse die folgenden Anmerkungen:
@XmlRootElement Es bestimmt die Wurzelelement des XML-Dokuments. @XmlAttribute Es bestimmt die Eigenschaft der Eigenschaft. @XmlElement Es bestimmt das Element.
package com.w;3codebox; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name="employee") public class Employee { private int id; private String name; private float salary; @XmlAttribute(name="id") public int getId() { return id; } public void setId(int id) { this.id = id; } @XmlElement(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @XmlElement(name="salary") public float getSalary() {}} return salary; } public void setSalary(float salary) { this.salary = salary; } }
applicationContext.xml
Es definiert einen Bean namens jaxbMarshallerBean, bei dem die Klasse Employee mit dem OXM-Framework verbunden ist.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oxm="http://www.springframework.org/schema/oxm" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd"> <oxm:jaxb2-marshaller id="jaxbMarshallerBean"> <oxm:class-to-be-bound name="com.w3codebox.Employee"/> </oxm:jaxb2-marshaller> </beans>
Client.java
Es holt die Instanz des Marshaller aus der Datei applicationContext.xml und ruft die Methode marshal auf.
package com.w;3codebox; import java.io.FileWriter; import java.io.IOException; import javax.xml.transform.stream.StreamResult; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.oxm.Marshaller; public class Client{ public static void main(String[] args) throws IOException{ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Marshaller marshaller = (Marshaller)context.getBean("jaxbMarshallerBean"); Employee employee=new Employee(); employee.setId(101); employee.setName("Sonoo Jaiswal"); employee.setSalary(100000); marshaller.marshal(employee, new StreamResult(new FileWriter("employee.xml"))); System.out.println("XML Erstellt Erfolgreich"); } }
employee.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <employee id="101> <name>Sonoo Jaiswal</name> <salary>100000.0</salary> </employee>