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

مثال على دمج Spring وCastor

باستخدام CastorMarshaller يمكننا باستخدام Castor تحويل كائنات Java إلى xml، والعكس صحيح. إنه فئة تنفيذ لمكتبات Marshall و Unmarshaller. بشكل افتراضي، لا تحتاج إلى أي تكوين إضافي.

مثال على دمج Spring وCastor (تحويل كائنات Java إلى XML)

تحتاج إلى إنشاء الملفات التالية لاستخدام Castor لتحويل كائنات Java إلى XML باستخدام Spring:

Employee.java applicationContext.xml mapping.xml Client.java

ملفات jar المطلوبة

لإجراء هذا المثال، تحتاج إلى تحميل:

ملف jar لـ Spring Core ملف jar لـ Spring Web castor-1.3.jar castor-1.3-core.jar

تحميل جميع جارات Spring، بما في ذلك core، web، aop، mvc، j2ee، remoting، oxm، jdbc، orm وما إلى ذلك.

تحميل castor-1.3.jar

تحميل castor -1.3-core.jar


Employee.java

إذا تم تعريف ثلاث خصائص باستخدام مفاتيح الافتراضية والقراءة id، الاسم، والراتب.

package com.w3codebox;
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

يحدد BeancastorMarshallerBean، حيث يتم ربط فئةEmployee بـOXM framework.

<?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/Castor Mapping DTD Version 1.0//EN"
                         "http://castor.org/mapping.dtd">
 <mapping>
    <class name="com.w3codebox.Employee" auto-complete="true">
        <map-to xml="Employee" ns-uri="http://ar.oldtoolbag.com" ns-prefix="dp"/>
        <field name="id" type="integer">
            <bind-xml name="id" node="attribute"></bind-xml>
        </field>
        <field name="name">
            <bind-xml name="name"></bind-xml>
        </field>
        <field name="salary">
            <bind-xml name="salary" type="float"></bind-xml>
        </field>
        
    </class>
    
 </mapping>

Client.java

يستخرج مثيل Marshaller من ملف applicationContext.xml ويقوم بتطبيق طريقة marshal.

package com.w3codebox;
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 بنجاح");
 }
}

مخرجات المثال

employee.xml

<?xml version="1.0" encoding="UTF-8"?>
<dp:Employee xmlns:dp="http://ar.oldtoolbag.com" id="101">
<dp:name>Sonoo Jaiswal</dp:name>
<dp:salary>100000.0</dp:salary>
</dp:Employee>