উদাহরণ সহ Spring Boot এবং OXM Integration

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

266

এই উদাহরণে, আমরা Spring Boot অ্যাপ্লিকেশনে Spring OXM ব্যবহার করে একটি REST API তৈরি করব, যেখানে আমরা XML ডেটার জন্য Marshalling (Java Object → XML) এবং Unmarshalling (XML → Java Object) করব।


১. Maven ডিপেন্ডেন্সি

প্রথমে আপনার pom.xml ফাইলে নিচের ডিপেন্ডেন্সি যোগ করুন:

<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring OXM -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-oxm</artifactId>
    </dependency>

    <!-- JAXB API for XML Processing -->
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.1</version>
    </dependency>
</dependencies>

২. JAXB মডেল তৈরি

Student ক্লাস:

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

@XmlRootElement(name = "student")
public class Student {

    private String id;
    private String name;
    private String department;

    @XmlElement
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @XmlElement
    public String getName() {
        return name;
    }

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

    @XmlElement
    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }
}

৩. Spring OXM কনফিগারেশন

OXMConfig ক্লাস:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;

@Configuration
public class OXMConfig {

    @Bean
    public Jaxb2Marshaller jaxb2Marshaller() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        // JAXB-তে ম্যাপ করার জন্য মডেল ক্লাস সেট করুন
        marshaller.setClassesToBeBound(Student.class);
        return marshaller;
    }
}

৪. REST কনট্রোলার

StudentController ক্লাস:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.web.bind.annotation.*;

import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;
import java.io.StringWriter;

@RestController
@RequestMapping("/api/students")
public class StudentController {

    @Autowired
    private Jaxb2Marshaller marshaller;

    // POST: XML ডেটা গ্রহণ করে এবং প্রসেস করে
    @PostMapping(consumes = "application/xml", produces = "application/xml")
    public String handleStudentRequest(@RequestBody String xmlRequest) {
        try {
            // Unmarshalling: XML → Java Object
            StringReader reader = new StringReader(xmlRequest);
            Student student = (Student) marshaller.unmarshal(new StreamSource(reader));

            // কিছু প্রসেসিং (উদাহরণ: নাম আপডেট)
            student.setName(student.getName() + " (Updated)");

            // Marshalling: Java Object → XML
            StringWriter writer = new StringWriter();
            marshaller.marshal(student, new StreamResult(writer));

            return writer.toString();

        } catch (Exception e) {
            return "<error>Invalid XML format</error>";
        }
    }
}

৫. Spring Boot অ্যাপ্লিকেশন চালু করা

Main Application:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringOXMApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringOXMApplication.class, args);
    }
}

৬. REST API টেস্ট করা

API Endpoint:

POST /api/students
Content-Type: application/xml
Accept: application/xml

অনুরোধের উদাহরণ:

<student>
    <id>101</id>
    <name>John Doe</name>
    <department>Computer Science</department>
</student>

রেসপন্স:

<student>
    <id>101</id>
    <name>John Doe (Updated)</name>
    <department>Computer Science</department>
</student>

কোডের ব্যাখ্যা

  1. Marshalling এবং Unmarshalling:
    • Marshalling: marshaller.marshal() ব্যবহার করে Java Object → XML রূপান্তর করা হয়।
    • Unmarshalling: marshaller.unmarshal() ব্যবহার করে XML → Java Object রূপান্তর করা হয়।
  2. Spring OXM এবং JAXB Integration:
    • Jaxb2Marshaller ব্যবহার করে সহজে JAXB-ভিত্তিক XML ম্যাপিং করা যায়।
  3. Spring Boot Integration:
    • Spring Boot এর মাধ্যমে এটি সহজে REST API এর সাথে ইন্টিগ্রেট করা হয়েছে।

উপকারিতা

  • সহজ ব্যবহার: Spring OXM XML ডেটার সাথে কাজ করা সহজ করে তোলে।
  • বহুমুখীতা: JAXB ছাড়াও অন্যান্য XML ম্যাপিং লাইব্রেরির সাথে কাজ করার সুযোগ।
  • Spring Boot এর সাথে seamless integration: কম কনফিগারেশনেই XML প্রসেসিং সাপোর্ট।

আপনার যদি এই উদাহরণে আরও কিছু কাস্টমাইজেশন বা বিশদ ব্যাখ্যা প্রয়োজন হয়, জানাবেন! 😊

Content added By
Promotion

Are you sure to start over?

Loading...