Castor এর মাধ্যমে Object/XML Mapping

Spring OXM এর সাথে Castor Integration - স্প্রিং ওএক্সএম (Spring OXM) - Java Technologies

250

স্প্রিং ওএক্সএম (Spring OXM) এর মাধ্যমে Castor ব্যবহার করে Object/XML Mapping একটি কার্যকরী প্রক্রিয়া, যেখানে আপনি Java অবজেক্ট এবং XML ডেটার মধ্যে রূপান্তর সহজে করতে পারেন। Castor একটি ওপেন সোর্স লাইব্রেরি যা JAXB-এর বিকল্প হিসেবে ব্যবহৃত হতে পারে এবং এটি XML-এ ডেটা মাপিং এর জন্য ব্যবহৃত হয়।

নিচে আমরা একটি উদাহরণ দেখব, যেখানে Spring OXM এর সাহায্যে Castor ব্যবহার করে Java অবজেক্টকে XML এবং XML ডেটাকে Java অবজেক্টে রূপান্তর করা হবে।


পদক্ষেপ ১: Maven পম.xml ফাইল কনফিগারেশন

প্রথমে, Maven প্রকল্পে Spring OXM এবং Castor ডিপেনডেন্সি যোগ করুন:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-oxm</artifactId>
        <version>5.3.20</version>
    </dependency>
    <dependency>
        <groupId>org.castor-project</groupId>
        <artifactId>castor</artifactId>
        <version>1.5.4</version>
    </dependency>
</dependencies>

পদক্ষেপ ২: Java ক্লাস তৈরি করা

এখন, Castor ব্যবহারের জন্য একটি Java ক্লাস তৈরি করা যাক, যেটি XML ডেটা ও Java অবজেক্টের মধ্যে মাপিং করবে। ধরুন আমাদের একটি Person ক্লাস আছে:

import org.castor.xml.util.XMLFieldHandler;
import org.castor.xml.util.XMLFieldHandlerException;

public class Person {

    private String name;
    private int age;

    // Getter and Setter for name
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    // Getter and Setter for age
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

এখানে Person ক্লাসের জন্য সাধারণ getters এবং setters ফাংশন ব্যবহার করা হয়েছে। Castor ব্যবহার করে XML মাপিং কাস্টমাইজ করা যেতে পারে, তবে এখানে মৌলিক ক্লাসের সাথে শুরু করা হয়েছে।


পদক্ষেপ ৩: Spring OXM Castor কনফিগারেশন

এখন Spring OXM কনফিগারেশনে Castor ব্যবহার করতে হবে। এর জন্য CastorMarshaller এবং CastorUnmarshaller এর সাহায্যে Java অবজেক্ট এবং XML ডেটার মধ্যে রূপান্তর করা যাবে।

import org.springframework.oxm.castor.CastorMarshaller;
import org.springframework.oxm.Marshaller;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringConfig {

    @Bean
    public Marshaller marshaller() {
        CastorMarshaller marshaller = new CastorMarshaller();
        marshaller.setMappingLocation(new ClassPathResource("person-mapping.xml"));
        return marshaller;
    }
}

এখানে, CastorMarshaller ব্যবহার করে XML ডেটার মাপিং কনফিগার করা হয়েছে। setMappingLocation() মেথডে একটি person-mapping.xml ফাইল নির্ধারণ করা হয়েছে, যেখানে XML ডেটা এবং Java অবজেক্টের মধ্যে সম্পর্ক নির্ধারণ করা হবে।


পদক্ষেপ ৪: XML থেকে Java অবজেক্টে রূপান্তর

এখন, XML ডেটা থেকে Java অবজেক্টে রূপান্তর করার জন্য নিম্নলিখিত কোডটি ব্যবহার করা হবে:

import org.springframework.oxm.Marshaller;
import org.springframework.oxm.Unmarshaller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class XmlToObject {

    public static void main(String[] args) throws Exception {
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        
        Unmarshaller unmarshaller = context.getBean(Unmarshaller.class);
        
        // XML String
        String xml = "<person><name>John Doe</name><age>30</age></person>";

        // XML থেকে Java অবজেক্টে রূপান্তর
        Person person = (Person) unmarshaller.unmarshal(new StringReader(xml));
        
        System.out.println(person.getName()); // Output: John Doe
        System.out.println(person.getAge());  // Output: 30
    }
}

এখানে, Unmarshaller এর মাধ্যমে XML স্ট্রিংকে Person অবজেক্টে রূপান্তর করা হয়েছে।


পদক্ষেপ ৫: Java অবজেক্ট থেকে XML এ রূপান্তর

এখন, Java অবজেক্ট থেকে XML এ রূপান্তরের জন্য Marshaller ব্যবহার করা হবে। নিচে একটি উদাহরণ দেখানো হলো:

import org.springframework.oxm.Marshaller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import java.io.StringWriter;

public class ObjectToXml {

    public static void main(String[] args) throws Exception {
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        
        Marshaller marshaller = context.getBean(Marshaller.class);
        
        // Java অবজেক্ট
        Person person = new Person();
        person.setName("Alice");
        person.setAge(25);

        // Java অবজেক্ট থেকে XML এ রূপান্তর
        StringWriter writer = new StringWriter();
        marshaller.marshal(person, new StreamResult(writer));
        
        String xmlOutput = writer.toString();
        System.out.println(xmlOutput); // Output: <person><name>Alice</name><age>25</age></person>
    }
}

এখানে, Marshaller ব্যবহার করে Person অবজেক্টটিকে XML ফরম্যাটে রূপান্তর করা হয়েছে এবং এর আউটপুট হিসেবে XML স্ট্রিং প্রিন্ট করা হয়েছে।


Castor Mapping XML ফাইল

person-mapping.xml ফাইলটি Castor XML মার্শালিং কনফিগারেশনের জন্য প্রয়োজন। এটি Person ক্লাসের জন্য XML এলিমেন্টগুলো কাস্টমাইজ করতে ব্যবহৃত হয়।

<?xml version="1.0" encoding="UTF-8"?>
<mapping>
    <class name="com.example.Person">
        <map-to xml="person"/>
        <field name="name">
            <map-to xml="name"/>
        </field>
        <field name="age">
            <map-to xml="age"/>
        </field>
    </class>
</mapping>

এখানে mapping ট্যাগের মধ্যে class এবং field ট্যাগের মাধ্যমে Person ক্লাস এবং তার ফিল্ডগুলোর XML মাপিং কনফিগার করা হয়েছে।


স্প্রিং ওএক্সএমের মাধ্যমে Castor ব্যবহার করে Object/XML Mapping করা একটি শক্তিশালী পদ্ধতি যা Java অবজেক্ট এবং XML ডেটার মধ্যে রূপান্তরকে সহজ ও কার্যকরী করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...