JAXB অ্যানোটেশন এর মাধ্যমে XML এর সাথে Object Mapping

JAXB এর সাথে Spring OXM ব্যবহার - স্প্রিং ওএক্সএম (Spring OXM) - Java Technologies

282

স্প্রিং ওএক্সএম (Spring OXM) XML ডাটা এবং Java অবজেক্টের মধ্যে মাধ্যস্থতা (mapping) তৈরিতে ব্যবহৃত একটি শক্তিশালী ফ্রেমওয়ার্ক। JAXB (Java Architecture for XML Binding) হল এমন একটি প্রযুক্তি যা Java অবজেক্ট এবং XML ডাটার মধ্যে সহজে রূপান্তর করতে সাহায্য করে। JAXB এর মাধ্যমে XML ডাটার সাথে Java অবজেক্টের মাপিং করা হয়, যেখানে অ্যানোটেশন ব্যবহার করে এই সম্পর্ক নির্ধারণ করা হয়।

JAXB অ্যানোটেশন ব্যবহার

JAXB অ্যানোটেশনগুলি Java ক্লাসের মধ্যে XML ডাটার সাথে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়। এই অ্যানোটেশনগুলি ক্লাস, ফিল্ড, অথবা মেথডের উপর প্রয়োগ করা যেতে পারে, যা XML ফাইলের স্ট্রাকচারের সাথে Java অবজেক্টের স্ট্রাকচারকে সম্পর্কিত করে। স্প্রিং ওএক্সএম JAXB অ্যানোটেশন ব্যবহার করে XML ডাটা থেকে Java অবজেক্টে রূপান্তর এবং Java অবজেক্ট থেকে XML ফরম্যাটে রূপান্তর করতে সাহায্য করে।

JAXB অ্যানোটেশনগুলোর মূল ধরনের

  • @XmlRootElement: XML ফাইলের মূল উপাদান হিসেবে কাজ করে।
  • @XmlElement: Java ক্লাসের ফিল্ডগুলোকে XML উপাদান হিসেবে চিহ্নিত করে।
  • @XmlAttribute: XML এলিমেন্টের অ্যাট্রিবিউট হিসেবে একটি ফিল্ডকে চিহ্নিত করে।
  • @XmlType: ক্লাসের ধরন নির্ধারণ করে, যাতে JAXB কীভাবে ক্লাসের অবজেক্টটিকে XML ফরম্যাটে রূপান্তর করবে তা জানে।
  • @XmlAccessorType: JAXB কিভাবে ফিল্ড ও মেথডের উপর কাজ করবে তা নির্ধারণ করে।

JAXB অ্যানোটেশন ব্যবহার করে XML এর সাথে Object Mapping উদাহরণ

একটি সাধারণ উদাহরণ দেখা যাক, যেখানে XML ডাটার সাথে একটি Java অবজেক্টের মাপিং করা হয়েছে:

Java ক্লাস

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Book {
    private String title;
    private String author;

    @XmlElement
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    @XmlElement
    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }
}

এই উদাহরণে, @XmlRootElement অ্যানোটেশনটি Book ক্লাসকে XML উপাদান হিসেবে চিহ্নিত করে। @XmlElement অ্যানোটেশনটি title এবং author ফিল্ডগুলোকে XML উপাদান হিসেবে চিহ্নিত করে।

XML ডাটা (book.xml)

<book>
    <title>Spring in Action</title>
    <author>Craig Walls</author>
</book>

এই XML ডাটাটি Book অবজেক্টের উপস্থাপন।

স্প্রিং ওএক্সএম কনফিগারেশন

স্প্রিং ওএক্সএম কনফিগারেশনে JAXB এর সাথে ইন্টিগ্রেশন করার জন্য Jaxb2Marshaller ব্যবহার করা হয়। নিচে একটি সাধারণ কনফিগারেশন দেখানো হলো:

<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="contextPath" value="com.example.model"/>
</bean>

<bean id="unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="contextPath" value="com.example.model"/>
</bean>

এখানে contextPath প্রপার্টি com.example.model প্যাকেজের মধ্যে থাকা JAXB অ্যানোটেশনযুক্ত ক্লাসকে নির্দেশ করে।

JAXB দিয়ে XML থেকে Java অবজেক্টে রূপান্তর

XML ডাটাকে Java অবজেক্টে রূপান্তর করতে নিচের কোড ব্যবহার করা যেতে পারে:

import org.springframework.oxm.Marshaller;
import org.springframework.oxm.Unmarshaller;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Unmarshaller unmarshaller = (Unmarshaller) context.getBean("unmarshaller");

File xmlFile = new File("book.xml");
Book book = (Book) unmarshaller.unmarshal(xmlFile);

এখানে unmarshal মেথড XML ডাটাকে Book অবজেক্টে রূপান্তরিত করে।

JAXB দিয়ে Java অবজেক্ট থেকে XML রূপান্তর

Java অবজেক্টকে XML ফরম্যাটে রূপান্তর করতে নিচের কোড ব্যবহার করা যেতে পারে:

Marshaller marshaller = (Marshaller) context.getBean("marshaller");
File outputFile = new File("output.xml");
marshaller.marshal(book, outputFile);

এখানে marshal মেথড Book অবজেক্টকে XML ফরম্যাটে রূপান্তরিত করে এবং output.xml ফাইলে সংরক্ষণ করে।


স্প্রিং ওএক্সএম এবং JAXB অ্যানোটেশনগুলি XML ডাটা ও Java অবজেক্টের মধ্যে রূপান্তর প্রক্রিয়াকে সহজ, কার্যকর এবং অটোমেটেড করে তোলে। এটি Java ডেভেলপারদের জন্য XML ডাটার সাথে কাজ করার একটি শক্তিশালী টুল হিসেবে কাজ করে।

Content added By
Promotion

Are you sure to start over?

Loading...