স্প্রিং ওএক্সএম (Spring OXM) এবং XStream ব্যবহার করে XML ডেটা প্রসেসিং একটি জনপ্রিয় পদ্ধতি। XStream একটি লাইব্রেরি যা সহজেই Java অবজেক্টগুলোকে XML ফরম্যাটে রূপান্তর (marshal) এবং XML ডেটাকে Java অবজেক্টে রূপান্তর (unmarshal) করতে ব্যবহৃত হয়। Spring OXM ফ্রেমওয়ার্কের সাহায্যে XStream ইন্টিগ্রেশন করা যায়। নিচে Spring OXM এবং XStream ব্যবহার করে XML ডেটা প্রসেসিং এর একটি উদাহরণ দেওয়া হলো।
Spring OXM এ XStream ব্যবহার করার জন্য আপনাকে কিছু নির্দিষ্ট কনফিগারেশন করতে হবে। এখানে XStream মাপিং করার জন্য প্রাথমিকভাবে XStreamMarshaller ব্যবহার করতে হবে, যা Spring OXM এর অংশ।
Step 1: Maven বা Gradle ডিপেনডেন্সি কনফিগার করা
প্রথমে আপনার প্রকল্পে প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে হবে।
Maven (pom.xml):
<dependencies>
<!-- Spring OXM Dependency -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>5.3.22</version> <!-- সর্বশেষ স্প্রিং ভার্সন ব্যবহার করুন -->
</dependency>
<!-- XStream Dependency -->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.18</version> <!-- সর্বশেষ XStream ভার্সন ব্যবহার করুন -->
</dependency>
<!-- Spring Context Dependency -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.22</version>
</dependency>
</dependencies>
Gradle (build.gradle):
dependencies {
// Spring OXM Dependency
implementation 'org.springframework:spring-oxm:5.3.22'
// XStream Dependency
implementation 'com.thoughtworks.xstream:xstream:1.4.18'
// Spring Context Dependency
implementation 'org.springframework:spring-context:5.3.22'
}
Step 2: XStream কনফিগারেশন
এবার Spring OXM কনফিগারেশন ফাইলে XStream মার্শালিং এবং আনমার্শালিং সেটআপ করতে হবে।
Spring কনফিগারেশন (XML):
<bean id="xStreamMarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="aliases">
<map>
<entry key="person" value="com.example.Person"/>
</map>
</property>
</bean>
<bean id="marshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="aliases">
<map>
<entry key="person" value="com.example.Person"/>
</map>
</property>
</bean>
<bean id="unmarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="aliases">
<map>
<entry key="person" value="com.example.Person"/>
</map>
</property>
</bean>
এখানে XStreamMarshaller ব্যবহার করে marshaller এবং unmarshaller তৈরি করা হয়েছে, যা XML ডেটার সাথে Java অবজেক্টের মেলবন্ধন ঘটাবে।
Step 3: Java ক্লাস তৈরি করা
এবার Java ক্লাস তৈরি করা যেটি XML ডেটা মাপিং করবে।
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("person")
public class Person {
private String name;
private int age;
// Getter and Setter Methods
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;
}
}
এখানে @XStreamAlias এনোটেশন ব্যবহার করে XML ফাইলের <person> এলিমেন্টের সঙ্গে Java ক্লাসকে মেলানো হয়েছে।
Step 4: XML ডেটা প্রসেসিং কোড
এবার Java কোড লিখে Person অবজেক্টকে XML ফরম্যাটে রূপান্তর (marshal) এবং XML ডেটা থেকে Java অবজেক্টে রূপান্তর (unmarshal) করা হবে।
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.oxm.Marshaller;
import org.springframework.oxm.Unmarshaller;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;
import java.io.StringWriter;
public class XStreamOXMExample {
public static void main(String[] args) throws Exception {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
// মার্শালিং এবং আনমার্শালিং এর জন্য XStreamMarshaller
Marshaller marshaller = context.getBean("marshaller", Marshaller.class);
Unmarshaller unmarshaller = context.getBean("unmarshaller", Unmarshaller.class);
// Java অবজেক্ট তৈরি
Person person = new Person();
person.setName("John Doe");
person.setAge(30);
// Java থেকে XML এ রূপান্তর (Marshaller)
StringWriter writer = new StringWriter();
marshaller.marshal(person, new StreamResult(writer));
String xmlOutput = writer.toString();
System.out.println("XML Output: \n" + xmlOutput);
// XML থেকে Java অবজেক্টে রূপান্তর (Unmarshaller)
StringReader reader = new StringReader(xmlOutput);
Person unmarshalledPerson = (Person) unmarshaller.unmarshal(new StreamSource(reader));
System.out.println("Unmarshalled Person: " + unmarshalledPerson.getName() + ", " + unmarshalledPerson.getAge());
}
}
এই কোডে:
marshallerএবংunmarshallerSpring কনটেইনার থেকে নেয়া হয়েছে।Personঅবজেক্টকে XML ফরম্যাটে রূপান্তর (marshal) করা হয়েছে এবং XML থেকে Java অবজেক্টে রূপান্তর (unmarshal) করা হয়েছে।
Step 5: XML ফাইলের আউটপুট
Java অবজেক্টকে XML ফরম্যাটে রূপান্তর করার পর আউটপুট এমন কিছু হতে পারে:
<person>
<name>John Doe</name>
<age>30</age>
</person>
এখানে name এবং age এলিমেন্টগুলির মধ্যে Java অবজেক্টের ডেটা রয়েছে।
সারাংশ
Spring OXM এবং XStream ব্যবহার করে XML ডেটা প্রসেসিং খুবই সহজ এবং কার্যকরী। XStream লাইব্রেরি Java অবজেক্ট এবং XML ডেটার মধ্যে রূপান্তরকে অত্যন্ত সহজ করে তোলে, এবং Spring OXM ফ্রেমওয়ার্ক এটি কার্যকরভাবে ব্যবহারে সহায়তা করে।
Read more