স্প্রিং ওয়েব সার্ভিসেস ডেভেলপমেন্টের সময়, @Endpoint এবং @PayloadRoot অ্যানোটেশন দুটি SOAP মেসেজ প্রসেসিংয়ের জন্য মূল ভূমিকা পালন করে। এদের সাহায্যে আপনি ইনকামিং SOAP মেসেজ হ্যান্ডল করতে পারেন এবং সঠিক ফাংশনে রাউট করতে পারেন।
@Endpoint অ্যানোটেশন
ভূমিকা
@Endpoint একটি ক্লাসের উপর প্রয়োগ করা হয় যা SOAP মেসেজ প্রক্রিয়াকরণের জন্য দায়ী। এটি স্প্রিং ওয়েব সার্ভিস ফ্রেমওয়ার্ককে নির্দেশ করে যে এই ক্লাসটি SOAP মেসেজ হ্যান্ডল করবে।
বৈশিষ্ট্য
- এটি একটি স্ট্যান্ডার্ড স্প্রিং Bean।
- SOAP মেসেজ রাউটিং এবং প্রসেসিং পরিচালনার জন্য ব্যবহৃত হয়।
উদাহরণ
@Endpoint
public class HelloWorldEndpoint {
// SOAP মেসেজ প্রসেসিং মেথড এখানে ডিফাইন করা হয়
}
@PayloadRoot অ্যানোটেশন
ভূমিকা
@PayloadRoot অ্যানোটেশনটি একটি মেথডের উপর প্রয়োগ করা হয়, যা নির্দিষ্ট XML নেমস্পেস এবং লোকালপার্থ (localPart) এর ভিত্তিতে ইনকামিং SOAP মেসেজের পে-লোড (Payload) প্রসেস করে।
বৈশিষ্ট্য
- একটি মেথড নির্দিষ্ট নেমস্পেস এবং লোকালপার্থের জন্য রেজিস্টার করে।
- এটি XML ভিত্তিক SOAP মেসেজ প্রক্রিয়াকরণের জন্য নির্দিষ্ট ফাংশন নির্বাচন করতে সাহায্য করে।
উদাহরণ
@PayloadRoot(namespace = "http://example.com/helloworld", localPart = "HelloRequest")
@ResponsePayload
public HelloResponse sayHello(@RequestPayload HelloRequest request) {
// ইনকামিং রিকোয়েস্ট প্রসেসিং এবং রেসপন্স রিটার্ন
}
@Endpoint এবং @PayloadRoot এর সংযুক্ত ব্যবহার
পূর্ণ উদাহরণ
নিচে একটি পূর্ণাঙ্গ উদাহরণ দেওয়া হলো যেখানে @Endpoint এবং @PayloadRoot একসাথে ব্যবহার করা হয়েছে:
@Endpoint
public class HelloWorldEndpoint {
private static final String NAMESPACE_URI = "http://example.com/helloworld";
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "HelloRequest")
@ResponsePayload
public HelloResponse sayHello(@RequestPayload HelloRequest request) {
HelloResponse response = new HelloResponse();
response.setMessage("Hello, " + request.getName());
return response;
}
}
কোড ব্যাখ্যা
- @Endpoint:
HelloWorldEndpointক্লাসটি SOAP মেসেজ প্রক্রিয়ার জন্য ডিক্লেয়ার করা হয়েছে।- স্প্রিং এটি একটি Bean হিসেবে চিনে।
- @PayloadRoot:
- মেথডটি নির্দিষ্ট নেমস্পেস (
http://example.com/helloworld) এবং লোকালপার্থ (HelloRequest) এর জন্য রেজিস্টার করা হয়েছে। - শুধুমাত্র মিলে যাওয়া পে-লোড পেলেই মেথডটি এক্সিকিউট হবে।
- মেথডটি নির্দিষ্ট নেমস্পেস (
- @RequestPayload এবং @ResponsePayload:
@RequestPayloadইনকামিং XML ডেটা HelloRequest অবজেক্টে ম্যাপ করে।@ResponsePayloadআউটপুটকে HelloResponse অবজেক্ট থেকে XML ফর্ম্যাটে রূপান্তর করে।
ব্যবহারের সুবিধা
- সহজতা: স্প্রিং ওয়েব সার্ভিসের মাধ্যমে SOAP মেসেজ প্রসেসিং সহজ হয়।
- ম্যাপিং: @PayloadRoot এর মাধ্যমে নির্দিষ্ট XML নেমস্পেস এবং লোকালপার্থের ভিত্তিতে মেথড নির্বাচন করা যায়।
- স্ট্রাকচারড কোড: @Endpoint ব্যবহার করে SOAP মেসেজ প্রসেসিং লজিক এক জায়গায় সংগঠিত রাখা যায়।
সারাংশ
স্প্রিং ওয়েব সার্ভিসেসে @Endpoint এবং @PayloadRoot অ্যানোটেশন SOAP মেসেজ প্রসেসিংকে সুনির্দিষ্ট ও স্ট্রাকচারড করে তোলে। এর মাধ্যমে আপনি ক্লিন এবং স্কেলেবল কোড লিখতে পারেন, যা বড় প্রজেক্টের জন্য খুবই গুরুত্বপূর্ণ।
Read more