উদাহরণ সহ XStream ব্যবহার

Spring OXM এবং XStream Integration - স্প্রিং ওএক্সএম (Spring OXM) - Java Technologies

266

স্প্রিং ওএক্সএম (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 এবং unmarshaller Spring কনটেইনার থেকে নেয়া হয়েছে।
  • 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 ফ্রেমওয়ার্ক এটি কার্যকরভাবে ব্যবহারে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...