English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Avec CastorMarshaller Classe, nous pouvons utiliser Castor pour sérialiser des objets Java en xml, et inversement. C'est une implémentation de l'interface Marshaller et Unmarshaller. Par défaut, aucune autre configuration n'est nécessaire.
Vous devez créer les fichiers suivants pour sérialiser des objets Java en XML en utilisant Spring avec Castor:
Employee.java applicationContext.xml mapping.xml Client.java
Pour exécuter cet exemple, vous devez charger:
Fichier jar Spring Core Fichier jar Spring Web castor-1.3.jar castor-1.3-core.jar
Télécharger tous les fichiers jar de Spring, y compris core, web, aop, mvc, j2ee, remoting, oxm, jdbc, orm, etc.
Télécharger castor-1.3.jar
Télécharger castor -1.3-core.jar
Employee.java
Si les setteurs et getters sont définis, trois propriétés sont définies : id, nom et salaire.
package com.w;3codebox; public class Employee { private int id; private String name; private float salary; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public float getSalary() { return salary; } public void setSalary(float salary) { this.salary = salary; } }
applicationContext.xml
Il définit un Bean castorMarshallerBean, où la classe Employee est liée au cadre OXM.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="castorMarshallerBean" class="org.springframework.oxm.castor.CastorMarshaller"> <property name="targetClass" value="com.w3codebox.Employee"></property> <property name="mappingLocation" value="mapping.xml"></property> </bean> </beans>
mapping.xml
<?xml version="1.0"?> <!DOCTYPE mapping public "-//EXOLAB/EXOLAB 1Castor Mapping DTD Version//.0 EN"//"http:/castor.org mapping.dtd"> <mapping3<class name="com.w-codebox.Employee" auto complete="true">-<map-to xml="Employee" ns//www.w3uri="http:-codebox.com" ns/prefix="dp" > <bind-<field name="id" type="integer">/bind-xml> </field> <field name="id" xml name="id" node="attribute">< <bind-<field name="name">/bind-xml> </field> <field name="salary"> <bind-<bind xml name="salary" type="float"></bind-xml> </field> </class> </mapping>
Client.java
Il s'agit de récupérer l'instance de Marshaller à partir du fichier applicationContext.xml et d'appeler la méthode marshal.
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("castorMarshallerBean"); 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 Created Successfully"); } }
employee.xml
<?xml version="1.0" encoding="UTF-8"?> <dp:Employee xmlns:dp="http://fr.oldtoolbag.com" id="101> <dp:name>Sonoo Jaiswal</dp:name> <dp:salary>100000.0</dp:salary> </dp:Employee>