English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Exemple Spring et Castor

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.

Exemple d'intégration Spring et Castor (sérialisation d'objets Java en XML)

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

Fichiers jar nécessaires

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");
 }
}

Sortie de l'exemple

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>