Spring OXM (Object/XML Mapping) এর মাধ্যমে আমরা জাভা অবজেক্ট এবং XML ডাটার মধ্যে রূপান্তর বা ম্যাপিং (Mapping) করতে পারি। এই প্রক্রিয়াটিতে দুটি প্রধান কনসেপ্ট রয়েছে: Marshalling এবং Unmarshalling। এখানে আমরা এই দুটি প্রক্রিয়া উদাহরণসহ দেখব।
Marshalling
Marshalling হল জাভা অবজেক্টকে XML ডকুমেন্টে রূপান্তর করার প্রক্রিয়া। এটি XML ডাটা উৎপন্ন (Generate) করার জন্য ব্যবহৃত হয়। Spring OXM এর মাধ্যমে Marshalling করতে, আপনি সাধারণত Marshaller ক্লাস ব্যবহার করবেন।
উদাহরণ
ধরা যাক, আমাদের একটি Person ক্লাস রয়েছে, যার কিছু ফিল্ড আছে। আমরা এটি Marshalling এর মাধ্যমে XML ফরম্যাটে রূপান্তর করতে চাই।
Person.java:
public class Person {
private String name;
private int age;
// Getters and setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Spring OXM Marshalling উদাহরণ:
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import javax.xml.transform.stream.StreamResult;
import java.io.StringWriter;
public class MarshallingExample {
public static void main(String[] args) throws Exception {
// Person object তৈরি করা
Person person = new Person();
person.setName("John Doe");
person.setAge(30);
// JAXB2Marshaller ব্যবহার করা
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setClassesToBeBound(Person.class);
// XML আউটপুট স্ট্রিম তৈরি করা
StringWriter writer = new StringWriter();
marshaller.marshal(person, new StreamResult(writer));
// XML আউটপুট প্রিন্ট করা
System.out.println(writer.toString());
}
}
উৎপন্ন XML আউটপুট:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>John Doe</name>
<age>30</age>
</person>
এই উদাহরণে, Jaxb2Marshaller ক্লাসটি Person অবজেক্টকে XML ফরম্যাটে রূপান্তর করেছে।
Unmarshalling
Unmarshalling হল XML ডকুমেন্টকে জাভা অবজেক্টে রূপান্তর করার প্রক্রিয়া। এটি XML ডাটা থেকে জাভা অবজেক্ট তৈরি করার জন্য ব্যবহৃত হয়। Spring OXM এর মাধ্যমে Unmarshalling করতে, আপনি সাধারণত Unmarshaller ক্লাস ব্যবহার করবেন।
উদাহরণ
ধরা যাক, আমরা পূর্বে উৎপন্ন XML ডকুমেন্ট থেকে Person অবজেক্ট তৈরি করতে চাই।
Spring OXM Unmarshalling উদাহরণ:
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;
public class UnmarshallingExample {
public static void main(String[] args) throws Exception {
// XML স্ট্রিং তৈরি করা
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><person><name>John Doe</name><age>30</age></person>";
// JAXB2Marshaller ব্যবহার করা
Jaxb2Marshaller unmarshaller = new Jaxb2Marshaller();
unmarshaller.setClassesToBeBound(Person.class);
// XML থেকে Person অবজেক্টে রূপান্তর
StringReader reader = new StringReader(xml);
Person person = (Person) unmarshaller.unmarshal(new StreamSource(reader));
// Person অবজেক্টের ডাটা প্রিন্ট করা
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
}
}
আউটপুট:
Name: John Doe
Age: 30
এখানে, Jaxb2Marshaller XML ডাটা থেকে Person অবজেক্ট তৈরি করেছে।
সারাংশ
Spring OXM-এর মাধ্যমে Marshalling এবং Unmarshalling অত্যন্ত সহজ এবং কার্যকরভাবে সম্পাদন করা যায়। Marshalling-এর মাধ্যমে জাভা অবজেক্টকে XML ফরম্যাটে রূপান্তর করা হয় এবং Unmarshalling-এর মাধ্যমে XML ডাটা থেকে জাভা অবজেক্ট তৈরি করা হয়। এর মাধ্যমে ডেভেলপাররা সহজেই XML এবং জাভা অবজেক্টের মধ্যে ডাটা বিনিময় করতে পারে।
Read more