আরএসটি ওয়েব পরিষেবাদির জন্য স্প্রিং 4 বনাম জার্সি


117

আমরা বসন্তের 4.0.6 সংস্করণ সহ একটি নতুন অ্যাপ্লিকেশন করার পরিকল্পনা করছি। আমরা এমন কন্ট্রোলার ব্যবহার করি যা "এক্সএমএল" বা "জেএসএন" ফিরিয়ে দিতে পারে। পূর্ববর্তী প্রকল্পে আমরা জ্যাক্স-আরএস এপিআই ব্যবহার করে স্পর্শের জন্য স্প্রিংয়ের সাথে জার্সিকে সাফল্যের সাথে বাস্তবায়ন করেছি, তবে সিনিয়রদের কয়েকটি নিবন্ধ এবং পরামর্শ পড়ার পরে তারা বলেছিল যে বসন্তটি বেশ ভাল আরএসটি সমর্থন সরবরাহ করছে।

আমি জ্যাক-আরএস এবং জার্সি ব্যবহার না করে স্প্রিং আরএসটি সমর্থন ব্যবহার করলে সত্যই আমাকে বিভ্রান্ত করার কয়েকটি পয়েন্টগুলি হ'ল:

  1. স্প্রিং এমভিসিতে কীভাবে মার্শালিং এবং আনমারশেলিং করা হয়?

  2. মার্শালিং বা আনমর্শিংয়ের জন্য কি জ্যাক্স-আরএস ব্যবহার করা প্রয়োজন?

  3. যদি মার্শালিং এবং আনমারশালিংগুলি স্বয়ংক্রিয়ভাবে বসন্তের মাধ্যমে পরিচালিত হয় তবে এটি কীভাবে xMLRootE উপাদান সম্পর্কে জানবে।

আমি এখনও বিভ্রান্ত হয়ে পড়েছি যদি স্প্রিংটি আরইএসটি-র খুব ভাল সমর্থন প্রমাণ করে তবে লোকেরা এখনও বিশ্রামের জন্য জার্সির সাথে কেন যায়? সত্যিই বিশদ আরও জানতে চাইছেন।

আমি যদি কিছু ভুল বলে থাকি তবে তা এড়িয়ে যান। উদাহরণ সহকারে ব্যাখ্যা সত্যই সহায়ক।

আগাম ধন্যবাদ!!

উত্তর:


119

আমি বলব জার্সি এবং স্প্রিং এমভিসি উভয়ই দুর্দান্ত - প্রতিটি প্রকল্পের নিজস্ব স্টাইল এবং শক্তি রয়েছে। যাইহোক, স্ট্যাক ওভারফ্লো বিষয়গত তুলনা জিজ্ঞাসা করার জন্য সঠিক জায়গা নয় (আপনার প্রশ্নটি খুব দ্রুত বন্ধ হয়ে যাবে)। যদি আপনি ইতিমধ্যে অন্য সব কিছুর জন্য স্প্রিং ব্যবহার করছেন এবং জ্যাকস-আরএস ব্যবহার করার প্রয়োজন না হয় তবে স্প্রিং এমভিসি মোটামুটি বোঝায়।

(আন) মার্শেলিংয়ের মতো বৈশিষ্ট্যগুলি সম্পর্কে, জ্যাকস-আরএস সর্বোপরি কেবল একটি অনুমান - অন্যান্য গ্রন্থাগারগুলি একই এপিআই প্রয়োগ না করে একই বৈশিষ্ট্য সরবরাহ করতে পারে।

  1. পরিবর্তে MessageBodyReaders / রাইটার্স, স্প্রিং MVC ব্যবহার করছে HttpMessageConverters হাতল (UN) বিশ্রাম সম্পদ marshalling। স্প্রিং এমভিসি বিষয়বস্তু আলোচনার পরিচালনা করে এবং কাজের জন্য সর্বোত্তম উপলব্ধ রূপান্তরকারী চয়ন করে (তারা কী মিডিয়া তৈরি করে / কীভাবে তা ব্যবহার করে তা নির্দেশ করার পদ্ধতিগুলি বর্ণনা করতে পারে)।

  2. না, মার্শাল সংস্থানগুলিতে জ্যাকএক্স-আরএস ব্যবহার করার প্রয়োজন নেই। আসলে, জ্যাক্স-আরএস বাস্তবায়ন এবং স্প্রিং এমভিসি কাজটি করার জন্য তৃতীয় পক্ষের সিরিয়ালাইজেশন লাইব্রেরি ব্যবহার করে; সুতরাং এটি কোনও নির্দিষ্ট মানের সাথে আবদ্ধ নয়।

  3. এর 4.0.0 সংস্করণে, স্প্রিং জেএসসনের জন্য জ্যাকসন, এক্সএমএল এবং জ্যাকসবি এবং অন্যান্য অনেকগুলি সহ অনেকগুলি এইচটিপিএমসেসেজ কনভার্টরসকে সমর্থন করে। স্প্রিংস ৪.১.০ আরও এইচটিটিপিমেসেজ কনভার্টার যুক্ত করেছে :

আপনার শেষ পয়েন্টটির উত্তর দেওয়ার জন্য, @XmlRootElementএটি জ্যাকএক্সবি টিকা এবং জ্যাকস-আরএসের অংশ নয়। বসন্ত জ্যাকএক্সবি সমর্থন করে

স্প্রিং-এ আরইএসটি সহ আরও সম্পূর্ণ উদাহরণের জন্য, এই শুরু করার গাইডটি দেখুন (আপনি 10-15 মিনিটের মধ্যে একটি সম্পূর্ণ উদাহরণ চলবেন)।

আবার আপনার প্রশ্নের শেষ অংশটি সম্পূর্ণ বিষয়গত - জেভিএম-এ কেবল জার্সি এবং স্প্রিং নয় (ড্রপউইজার্ড, প্লে! ফ্রেমওয়ার্ক ইত্যাদি) জেএমএম-এ আরইএসটি পরিষেবা তৈরির জন্য অনেকগুলি জনপ্রিয় সমাধান রয়েছে।


2
আপনি কোথায় কাউকে এই জাতীয় প্রশ্ন জিজ্ঞাসা করবেন?
সুইড

8
"আপনার প্রশ্নটি খুব দ্রুত বন্ধ হয়ে যাবে"! তাড়াতাড়ি নয় :)
আফশিন মোয়াজামি

6
আমার ভালবাসার স্ট্যাকওভারফ্লো আছে এবং আমি কোরা পছন্দ করি, আমি এই সমাপনী বিষয়গত প্রশ্ন নীতিটি কখনও পছন্দ করি না এবং
কোরাতে

একটি স্পর্শকাতর প্রশ্ন, আমরা কি একই ইআর জার্সি এবং স্প্রিংরেস্ট উভয়কেই আলাদা আলাদা সেবার জন্য একসাথে চলতে পারি?
pramodc84

22

আফাইক স্প্রিং আরএসটি সমর্থনটি স্প্রিং এমভিসি এবং এর জ্যাকস-আরএস বাস্তবায়নের উপর ভিত্তি করে নয় জার্সি জ্যাক্স-আরএস স্পেসিফিকেশন প্রয়োগ করেছে। যাঁরা তাদের প্রকল্পে স্প্রিং (কোর, এওপি বা এমভিসি) রয়েছেন তারা জ্যাক্স-আরএস প্রয়োগকারীকে স্প্রিং আরএসটি সমর্থন পছন্দ করেন।

আমি জার্সিকে তার পরিপক্ক হিসাবে প্রস্তাব দিচ্ছি, জ্যাক্স-আরএস প্রয়োগ করে এবং ব্যবহার করা সহজ।


1
জবাব দেওয়ার জন্য ধন্যবাদ, জ্যাক্স-আরএস ব্যবহার না করে কীভাবে বসন্তে মার্শালিং এবং আনমারশালিং করা হয়েছে।
রবিন সাক্সেনা

হ্যাঁ, আমি আপনার সাথে একমত স্প্রিং ওয়েব এমভিসি রেস্ট ব্যবহার করা তেমন সহজ নয়। আপনার যত্ন নিতে হবে এমন অনেকগুলি কনফিগারেশন রয়েছে।
ইভান হু

2
আপনি স্প্রিং বুট ব্যবহার করে (বা আপনি ব্যবহার করতে চান) জার্সিও একটি ভাল পছন্দ। সিএফ ডকুমেন্টেশন
হেরাউ

1
মার্শালিং এবং আনমারশিলিংয়ের জন্য আপনি গুগল জিএসএন লাইব্রেরি ব্যবহার করতে পারেন । এটি জাভা জেনেরিকস এবং কাস্টম অবজেক্টগুলিকে সমর্থন করে।
তেজজেরাতুল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.