JAXB (Java Architecture for XML Binding) হল একটি জাভা API যা XML ডকুমেন্ট এবং জাভা অবজেক্টের মধ্যে ডেটা রূপান্তরের কাজ করে। এটি ডেভেলপারদের XML ডেটা প্রক্রিয়াকরণকে সহজ করে তোলে। JAXB এর মাধ্যমে XML ডেটা জাভা অবজেক্টে (Unmarshalling) এবং জাভা অবজেক্টকে XML ডেটায় (Marshalling) রূপান্তর করা যায়।
স্প্রিং ওয়েব সার্ভিসেসে JAXB এর ব্যবহার
স্প্রিং ওয়েব সার্ভিসেসে JAXB ব্যবহৃত হয় SOAP বা RESTful ওয়েব সার্ভিসে Object/XML Mapping করার জন্য। এটি XML ডেটার সঙ্গে জাভা কোডের মডেল তৈরিতে সহায়তা করে।
JAXB এর মাধ্যমে Object/XML Mapping এর ধাপ
JAXB কনফিগারেশন
মডেল ক্লাস তৈরি
JAXB ব্যবহার করার জন্য প্রথমে একটি জাভা মডেল ক্লাস তৈরি করতে হবে এবং সেটি XML ডেটার জন্য মানানসই করতে হবে। JAXB annotations ব্যবহার করে ক্লাসটি কনফিগার করতে হয়।উদাহরণস্বরূপ:
@XmlRootElement(name = "Employee") public class Employee { private int id; private String name; private double salary; @XmlElement public int getId() { return id; } public void setId(int id) { this.id = id; } @XmlElement public String getName() { return name; } public void setName(String name) { this.name = name; } @XmlElement public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } }Marshalling (Object to XML)
JAXBContext এবং Marshaller ব্যবহার করে জাভা অবজেক্টকে XML ডকুমেন্টে রূপান্তর করা হয়।উদাহরণ:
Employee emp = new Employee(); emp.setId(101); emp.setName("John Doe"); emp.setSalary(75000); JAXBContext context = JAXBContext.newInstance(Employee.class); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(emp, System.out);Unmarshalling (XML to Object)
XML ডেটাকে জাভা অবজেক্টে রূপান্তর করার জন্য Unmarshaller ব্যবহার করা হয়।উদাহরণ:
File file = new File("employee.xml"); JAXBContext context = JAXBContext.newInstance(Employee.class); Unmarshaller unmarshaller = context.createUnmarshaller(); Employee emp = (Employee) unmarshaller.unmarshal(file); System.out.println(emp.getName());
স্প্রিং-WS এ JAXB ইন্টিগ্রেশন
স্প্রিং-WS এ JAXB ব্যবহারের জন্য নিম্নোক্ত ধাপগুলো অনুসরণ করা হয়:
OXM Bean Configuration
স্প্রিং কনফিগারেশনেJaxb2Marshallerব্যবহার করা হয়। এটি XML এবং জাভা অবজেক্টের মধ্যে রূপান্তরের জন্য JAXB এর ক্ষমতা ব্যবহার করে।উদাহরণ:
@Bean public Jaxb2Marshaller marshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setPackagesToScan("com.example.model"); return marshaller; }WebServiceTemplate ব্যবহার
WebServiceTemplateএর মাধ্যমে JAXBMarshaller ইন্টিগ্রেশন করে SOAP কল করা হয়।উদাহরণ:
@Bean public WebServiceTemplate webServiceTemplate(Jaxb2Marshaller marshaller) { WebServiceTemplate template = new WebServiceTemplate(); template.setMarshaller(marshaller); template.setUnmarshaller(marshaller); return template; }
JAXB এর সুবিধা
- XML ডেটার সঙ্গে কাজ করার প্রক্রিয়া সহজ করে।
- প্রয়োগ করা সহজ এবং স্প্রিং-WS এর সঙ্গে সুসংগত।
- প্লাগেবল এবং কাস্টমাইজেবল।
- স্কিমা থেকে কোড জেনারেশনের মাধ্যমে কনসিস্টেন্সি নিশ্চিত করে।
JAXB Object/XML Mapping কেন গুরুত্বপূর্ণ
JAXB স্প্রিং ওয়েব সার্ভিসেসে Object/XML Mapping সহজ করে এবং XML এবং জাভা অবজেক্টের মধ্যে কার্যকর যোগাযোগ স্থাপন করে। এর মাধ্যমে ডেভেলপাররা SOAP বার্তা হ্যান্ডলিং এবং ডেটা প্রসেসিং আরও সহজ ও দ্রুত করতে পারে।
Read more