Spring OXM সাধারণত XML ডেটা প্রসেস করার জন্য ব্যবহৃত হলেও, JAXB (Java Architecture for XML Binding) এর মাধ্যমে JSON ডেটা প্রসেস করার জন্যও এটি ব্যবহার করা যেতে পারে। JAXB মূলত XML ডেটা ম্যানিপুলেশনের জন্য ডিজাইন করা হলেও, JSON ডেটা প্রসেস করার জন্য কিছু কনফিগারেশন ও লাইব্রেরি ব্যবহার করতে হবে।
Spring OXM JAXB ব্যবহার করে JSON ডেটাকে Java অবজেক্টে রূপান্তর এবং Java অবজেক্টকে JSON ডেটায় রূপান্তর করতে সহায়তা করে। এই প্রক্রিয়ায়, Spring OXM এর JAXB মার্শালার এবং আনমার্শালার ব্যবহার করতে হবে, তবে JSON প্রসেসিংয়ের জন্য Jackson বা অন্য JSON লাইব্রেরি ব্যবহার করা হয়।
প্রয়োজনীয় ডিপেনডেন্সি
Spring OXM ব্যবহার করে JSON প্রসেস করতে Jackson লাইব্রেরি ব্যবহার করা হয়, যা JSON ডেটাকে Java অবজেক্টে রূপান্তর (deserialization) এবং Java অবজেক্টকে JSON ডেটাতে রূপান্তর (serialization) করতে সাহায্য করে।
1. Maven ডিপেনডেন্সি
<dependencies>
<!-- Spring OXM Dependency -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>5.3.0</version> <!-- আপনার প্রয়োজনীয় সংস্করণ -->
</dependency>
<!-- Jackson for JSON processing -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version> <!-- আপনার প্রয়োজনীয় সংস্করণ -->
</dependency>
<!-- JAXB API (যদি JAXB ব্যবহার করতে চান) -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
2. Gradle ডিপেনডেন্সি
dependencies {
// Spring OXM Dependency
implementation 'org.springframework:spring-oxm:5.3.0'
// Jackson for JSON processing
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.3'
// JAXB API (যদি JAXB ব্যবহার করতে চান)
implementation 'javax.xml.bind:jaxb-api:2.3.1'
}
JSON ডেটা প্রসেসিং উদাহরণ
ধরা যাক, আমাদের একটি Book ক্লাস রয়েছে, এবং আমরা একটি JSON ডেটা প্রসেস করতে চাই।
1. Java ক্লাস (Book.java)
package com.example;
public class Book {
private String title;
private String author;
private double price;
// Getter and Setter methods
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
2. JSON ডেটা (book.json)
{
"title": "Spring Framework Basics",
"author": "John Doe",
"price": 29.99
}
3. Spring OXM কনফিগারেশন (beans.xml)
Spring OXM কনফিগারেশনে JAXB মার্শালার এবং Jackson এর সহায়তায় JSON প্রসেসিং করতে নিচের কনফিগারেশন ব্যবহার করা যাবে:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- Define the Jackson2JsonMarshaller bean for JSON processing -->
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.example.Book</value>
</list>
</property>
</bean>
<!-- Define the Jackson2JsonUnmarshaller bean -->
<bean id="unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.example.Book</value>
</list>
</property>
</bean>
</beans>
Java কোড: JSON থেকে Object Mapping
এখন Spring OXM ব্যবহার করে JSON ডেটা প্রসেস করতে নিচের Java কোড ব্যবহার করতে হবে।
4. Java কোড (SpringOXMExample.java)
package com.example;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
public class SpringOXMExample {
public static void main(String[] args) throws Exception {
// Load Spring context from XML configuration
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// Get the unmarshaller bean
Jaxb2Marshaller unmarshaller = context.getBean("unmarshaller", Jaxb2Marshaller.class);
// Read the JSON file using Jackson ObjectMapper
ObjectMapper objectMapper = new ObjectMapper();
File jsonFile = new File("book.json");
// Convert JSON to Book object using Jackson
Book book = objectMapper.readValue(jsonFile, Book.class);
// Print the book details
System.out.println("Book Title: " + book.getTitle());
System.out.println("Book Author: " + book.getAuthor());
System.out.println("Book Price: " + book.getPrice());
context.close();
}
}
সারাংশ
এই উদাহরণে দেখানো হয়েছে কিভাবে Spring OXM এর মাধ্যমে JAXB এবং Jackson ব্যবহার করে JSON ডেটা প্রসেস করা যায়। এখানে Jackson লাইব্রেরি JSON ডেটাকে Java অবজেক্টে রূপান্তর করার জন্য ব্যবহার করা হয়েছে, এবং Spring OXM-এর JAXB মার্শালার ও আনমার্শালার ব্যবহার করে JSON ডেটা সহজেই Java অবজেক্টে মেপিং করা সম্ভব।
Read more