Spring OXM (Object XML Mapping) হল Spring Framework-এর একটি উপাদান, যা Java অবজেক্ট এবং XML ডেটার মধ্যে ম্যাপিং করার জন্য ব্যবহৃত হয়। এটি XML-এর সাথে কাজ করার জন্য সরলীকৃত এবং স্ট্যান্ডার্ড পদ্ধতি প্রদান করে। যদিও Spring OXM সাধারণত XML-এর জন্য ব্যবহৃত হয়, JSON-এর মতো ডেটা ফর্ম্যাটের সাথে একত্রিকরণ করার জন্য এর কাস্টমাইজেশন ব্যবহার করা যায়।
নিচে Spring OXM ব্যবহার করে JSON ইন্টিগ্রেশনের উদাহরণ দেখানো হয়েছে:
উদাহরণ: Spring OXM দিয়ে JSON Serialize এবং Deserialize
প্রয়োজনীয় নির্ভরতা (Maven)
<dependencies>
<!-- Spring OXM -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>5.3.25</version>
</dependency>
<!-- Jackson for JSON -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
</dependencies>
Java ক্লাস
package com.example.oxm;
import com.fasterxml.jackson.annotation.JsonProperty;
public class User {
@JsonProperty("id")
private int id;
@JsonProperty("name")
private String name;
@JsonProperty("email")
private String email;
// Getters and Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Spring Bean Configuration
package com.example.oxm;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper();
}
@Bean
public Jaxb2Marshaller jaxb2Marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setClassesToBeBound(User.class);
return marshaller;
}
}
JSON Serialization এবং Deserialization
package com.example.oxm;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class JsonIntegrationExample {
@Autowired
private ObjectMapper objectMapper;
public String serializeToJson(User user) throws Exception {
// Object to JSON String
return objectMapper.writeValueAsString(user);
}
public User deserializeFromJson(String json) throws Exception {
// JSON String to Object
return objectMapper.readValue(json, User.class);
}
}
Main Method
package com.example.oxm;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
JsonIntegrationExample jsonExample = context.getBean(JsonIntegrationExample.class);
try {
// Create a User object
User user = new User();
user.setId(1);
user.setName("John Doe");
user.setEmail("john.doe@example.com");
// Serialize to JSON
String json = jsonExample.serializeToJson(user);
System.out.println("Serialized JSON: " + json);
// Deserialize from JSON
User deserializedUser = jsonExample.deserializeFromJson(json);
System.out.println("Deserialized User: " + deserializedUser.getName() + ", " + deserializedUser.getEmail());
} catch (Exception e) {
e.printStackTrace();
}
}
}
আউটপুট
Serialized JSON: {"id":1,"name":"John Doe","email":"john.doe@example.com"}
Deserialized User: John Doe, john.doe@example.com
এই উদাহরণে, Spring OXM মূলত XML প্রসেসিং-এর জন্য ব্যবহৃত হলেও, আমরা Jackson ObjectMapper ব্যবহার করে JSON-এর সাথে কাজ করেছি। JSON ইন্টিগ্রেশনের জন্য ObjectMapper একটি কার্যকরী পদ্ধতি প্রদান করে।
Read more