Spring OXM (Object XML Mapping) একটি Spring ফ্রেমওয়ার্কের অংশ, যা জাভা অবজেক্ট এবং XML ডকুমেন্টের মধ্যে ম্যাপিং (Mapping) সহজ করে। এটি JAXB, Castor, XStream, এবং JIBX-এর মতো বিভিন্ন XML মার্শালিং (Marshalling) এবং আনমার্শালিং (Unmarshalling) ফ্রেমওয়ার্ক সমর্থন করে।
Spring OXM সাধারণত SOAP মেসেজ তৈরি এবং প্রসেস করার সময় ব্যবহৃত হয়, বিশেষ করে Spring Web Services এ। নিচে Spring OXM এর ব্যবহারের জন্য একটি গাইড দেওয়া হলো।
Spring OXM এর মূল বৈশিষ্ট্য
- Marshalling (মার্শালিং): জাভা অবজেক্টকে XML-এ রূপান্তর করা।
- Unmarshalling (আনমার্শালিং): XML-কে জাভা অবজেক্টে রূপান্তর করা।
- Abstract API: বিভিন্ন XML-ম্যাপিং টুলের জন্য সমর্থন।
- Integration: Spring Web Services এর সাথে সহজ ইন্টিগ্রেশন।
Spring OXM ব্যবহার করার ধাপ
১. প্রয়োজনীয় ডিপেনডেন্সি যুক্ত করা
Spring OXM এবং JAXB এর জন্য Maven অথবা Gradle ডিপেনডেন্সি যুক্ত করুন।
Maven:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>5.3.12</version> <!-- সর্বশেষ ভার্সন ব্যবহার করুন -->
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>3.0.1</version>
</dependency>
Gradle:
implementation 'org.springframework:spring-oxm:5.3.12'
implementation 'jakarta.xml.bind:jakarta.xml.bind-api:3.0.1'
implementation 'org.glassfish.jaxb:jaxb-runtime:3.0.1'
২. JAXB মার্শালার কনফিগারেশন
JAXB ব্যবহার করে XML এবং জাভা অবজেক্টের মধ্যে ম্যাপিং করার জন্য একটি Jaxb2Marshaller বীন তৈরি করতে হবে।
Configuration Class:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
@Configuration
public class AppConfig {
@Bean
public Jaxb2Marshaller marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
// আপনার JAXB কন্টেক্সট প্যাকেজটি এখানে নির্ধারণ করুন
marshaller.setContextPath("com.example.model");
return marshaller;
}
}
৩. জাভা ক্লাস তৈরি করা (XML এর জন্য)
JAXB এনোটেশন ব্যবহার করে XML এর জন্য মডেল ক্লাস তৈরি করুন।
Example:
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "Person")
public class Person {
private String name;
private int age;
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
৪. মার্শালিং এবং আনমার্শালিং ব্যবহার
Spring OXM এর সাহায্যে জাভা অবজেক্ট এবং XML এর মধ্যে রূপান্তর করুন।
Marshalling (Object to XML):
import org.springframework.oxm.Marshaller;
import javax.xml.transform.stream.StreamResult;
import java.io.StringWriter;
public class MarshallingExample {
private final Marshaller marshaller;
public MarshallingExample(Marshaller marshaller) {
this.marshaller = marshaller;
}
public String convertObjectToXml(Person person) throws Exception {
StringWriter writer = new StringWriter();
marshaller.marshal(person, new StreamResult(writer));
return writer.toString();
}
}
Unmarshalling (XML to Object):
import org.springframework.oxm.Unmarshaller;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;
public class UnmarshallingExample {
private final Unmarshaller unmarshaller;
public UnmarshallingExample(Unmarshaller unmarshaller) {
this.unmarshaller = unmarshaller;
}
public Person convertXmlToObject(String xml) throws Exception {
StringReader reader = new StringReader(xml);
return (Person) unmarshaller.unmarshal(new StreamSource(reader));
}
}
Spring OXM এর সুবিধা
- জাভা অবজেক্ট এবং XML এর মধ্যে সহজ রূপান্তর।
- বিভিন্ন XML-ম্যাপিং ফ্রেমওয়ার্ক সমর্থন।
- Spring Framework এর সাথে সহজ ইন্টিগ্রেশন।
- SOAP মেসেজ প্রসেসিং সহজ করে।
Spring OXM ব্যবহার করে আপনি Spring Web Services এর জন্য XML ম্যাপিং আরও কার্যকরভাবে পরিচালনা করতে পারবেন।
Read more