স্প্রিং বনাম ইজেবি। বসন্ত কি ইজেবি প্রতিস্থাপন করতে পারে? [বন্ধ]


96

যেহেতু স্প্রিং কেবল ইজেবির মতো লেনদেন ব্যবহার করতে সক্ষম । আমার জন্য, স্প্রিং ইজেবি ব্যবহারের প্রয়োজনীয়তা প্রতিস্থাপন করতে সক্ষম। কেউ আমাকে বলতে পারেন যে ইজেবি ব্যবহারের অতিরিক্ত সুবিধা কী?

উত্তর:


201

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

ইজেবিগুলি ব্যবহারে যদি "সুবিধা" থাকে তবে আমি বলব যে এটি আপনার দলের দক্ষতার উপর নির্ভর করবে। আপনার যদি কোনও স্প্রিং দক্ষতা না থাকে এবং প্রচুর ইজেবি অভিজ্ঞতা থাকে, তবে সম্ভবত EJB 3.0 দিয়ে স্টিক করা ভাল পদক্ষেপ।

ইজেবি স্ট্যান্ডার্ডকে সমর্থন করার জন্য লিখিত অ্যাপ্লিকেশন সার্ভারগুলিকে তাত্ত্বিকভাবে একটি অনুগত জাভা ইই অ্যাপ্লিকেশন সার্ভার থেকে অন্যটিতে পোর্ট করা যেতে পারে। তবে এর অর্থ হ'ল যে কোনও এবং সমস্ত বিক্রেতা-নির্দিষ্ট এক্সটেনশনগুলি থেকে দূরে থাকুন যা আপনাকে একজন বিক্রেতার কাছে লক করে রাখে।

অ্যাপ্লিকেশন সার্ভারগুলির মধ্যে সহজেই বসন্তের বন্দরগুলি (যেমন, ওয়েবলজিক, টমক্যাট, জেবিওএস, ইত্যাদি) কারণ এটি তাদের উপর নির্ভর করে না।

যাইহোক, আপনি স্প্রিং এ লক করা আছে।

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

আপডেট: এই প্রশ্নোত্তর এবং উত্তরটি ২০১৪ সালে পাঁচ বছরের পুরনো It এটি বলা দরকার যে প্রোগ্রামিং এবং অ্যাপ্লিকেশন বিকাশের জগতটি সেই সময়ের মধ্যে একটি বিরাট পরিবর্তন ঘটেছে।

এটি আর জাভা বা সি #, স্প্রিং বা ইজেবিগুলির মধ্যে কেবল পছন্দ নয়। উল্লম্ব.এক্স দিয়ে জাভা ইই সম্পূর্ণভাবে বন্ধ করা সম্ভব। আপনি কোনও অ্যাপ সার্ভার ছাড়াই অত্যন্ত স্কেলেবল, পলিগ্লট অ্যাপ্লিকেশন লিখতে পারেন।

আপডেট: এখন মার্চ 2016। স্প্রিং বুট জাভা EE অ্যাপ্লিকেশন সার্ভার ছাড়াই অ্যাপ্লিকেশনগুলি লেখার আরও ভাল উপায় সরবরাহ করে। আপনি একটি এক্সিকিউটেবল জেআর তৈরি করতে এবং এটি একটি জেভিএম এ চালাতে পারেন।

আমি অবাক হয়েছি যে ওরাকল জাভা ইই অনুষঙ্গকে সমর্থন অব্যাহত রাখে কি না। ওয়েব পরিষেবাগুলি ইজেবিগুলির জন্য গ্রহণ করেছে। ইজেবি সমাধানটি মারা গেছে। (শুধুমাত্র আমার অভিমত.)


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

4
জাভা ইই প্ল্যাটফর্মগুলির জন্য ওরেकल, রেড হ্যাট এবং আইবিএম এর মধ্যে আপনি যেভাবে বেছে নিতে পারেন ভিএমওয়্যার / স্প্রিংয়ের কোনও বিকল্প বিক্রেতারা নেই। এটাই আমি বোঝাতে চাইছি। এটি স্প্রিংয়ের ক্ষমতা বা উপযোগিতা সম্পর্কে কোনও মন্তব্য নয়। আমি এটি খুব পছন্দ করে। আমি এটি প্রতিদিন ব্যবহার করি এবং রাতে ঘুমাই।
duffymo

4
পছন্দ করেছেন মানে, "জাভা" কোনও বিক্রেতা লক-এন হবে। সুতরাং শেষ পর্যন্ত, আমাদের কেবল তর্ক করা এবং কিছু করা বন্ধ করা দরকার। :-)
সিবিএমিকস

4
এই প্রশ্নটি প্রায় পাঁচ বছরের পুরনো। ব্যক্তিগতভাবে, আমি মনে করি ইজেবিগুলি হ'ল তারিখযুক্ত প্রযুক্তি যা এইচটিটিপি ওয়েব পরিষেবাদির প্রতিটি উপায়ে হারিয়েছে। সহজ এবং উন্মুক্ত জয়। আমাকে আরএসটি পরিষেবা দিন এবং আপনি আপনার ইজেবি রাখতে পারেন। বসন্ত তাদের সুন্দরভাবে সমর্থন করে। পৃথিবী যেখানে গেছে।
ডফাইমো

4
উত্তরের জন্য ধন্যবাদ. বিদ্যমান ইজেবি ২.১ অ্যাপ্লিকেশন থেকে মাইগ্রেশনের জন্য আরও ভাল এক (এসপিআরিং, ইজেবি 3.x) মূল্যায়নের হিসাবে কেবল সুবিধাগুলি সন্ধান করছি। আরও একটি প্রশ্ন, EJB 3.x এছাড়াও ওয়েব সার্ভিস সমর্থন করে। সুতরাং, আমরা কি জাভা অ্যাপ্লিকেশন বিতরণের জন্য জেএনডিআই / আরএমআই এবং অন্যান্য অ্যাপ্লিকেশনগুলির জন্য ডাব্লুএস এর সুবিধা পেতে পারি?
noboundaries

48

প্রথমে এটি পরিষ্কার করে বলি, আমি বলছি না যে আপনি স্প্রিং ব্যবহার করবেন না তবে আপনি কিছু সুবিধা চাইছেন বলে এর মধ্যে কমপক্ষে দুটি এখানে রয়েছে:

  • EJB 3 একটি স্ট্যান্ডার্ড, যখন স্প্রিং হয় না (এটি একটি ডি স্টাটিক স্ট্যান্ডার্ড তবে এটি একই জিনিস নয়) এবং এটি ভবিষ্যতে পরিবর্তিত হবে না। যদিও আপনি যে কোনও অ্যাপ্লিকেশন সার্ভারের সাথে বসন্তের কাঠামোটি ব্যবহার করতে পারেন, স্প্রিং অ্যাপ্লিকেশনগুলি বসন্তে এবং স্প্রিংয়ের সাথে সংহত করার জন্য আপনি যে নির্দিষ্ট পরিষেবাদি চয়ন করেন তা উভয়ই লক হয়ে যায়।

  • স্প্রিং ফ্রেমওয়ার্কটি অ্যাপ্লিকেশন সার্ভার এবং পরিষেবা লাইব্রেরির শীর্ষে বসে। পরিষেবা সংহতকরণ কোড (উদাহরণস্বরূপ ডেটা অ্যাক্সেস টেম্পলেট) ফ্রেমওয়ার্কটিতে থাকে এবং অ্যাপ্লিকেশন বিকাশকারীদের কাছে তা প্রকাশিত হয়। বিপরীতে, EJB 3 কাঠামোটি অ্যাপ্লিকেশন সার্ভারের সাথে সংহত করা হয়েছে এবং পরিষেবা সংহতকরণ কোডটি একটি ইন্টারফেসের পিছনে আবদ্ধ হয়। EJB 3 বিক্রেতারা এইভাবে অ্যাপ্লিকেশন সার্ভার স্তরে কাজ করে পারফরম্যান্স এবং বিকাশকারীদের অভিজ্ঞতাকে অনুকূল করতে পারে। উদাহরণস্বরূপ, তারা জেপিএ ইঞ্জিনটি জেটিএ লেনদেন পরিচালনার সাথে নিবিড়ভাবে বেঁধে রাখতে পারে। অন্য উদাহরণ হ'ল ক্লাস্টারিং সমর্থন যা ইজেবি 3 বিকাশকারীদের কাছে স্বচ্ছ।

EJB 3 নিখুঁত নয় যদিও এটি এখনও কিছু বৈশিষ্ট্য অভাব বোধ করছে (উদাহরণস্বরূপ সহজ POJOs এর মতো অ পরিচালিত উপাদানগুলির ইনজেকশন)।


4
শিক্ষাগত উত্তর, তবে আমি ভাবছি কেন / যখন আপনার কোনও নতুন পোস্ট শুরু করার পরিবর্তে একটি সাধারণ পোজো ইনজেকশন করা প্রয়োজন?
Farমার ফারুক আলমালি

4
পরীক্ষার উদ্দেশ্যে।
ফিলিপ

22

পাস্কলের পয়েন্টগুলি বৈধ। স্প্রিংয়ের পক্ষে তবে নিম্নলিখিতগুলি রয়েছে।

  • ইজেবি স্পেসিফিকেশন আসলে কিছুটা looseিলা, এবং তাই বিভিন্ন অ্যাপ্লিকেশন সার্ভারের সাথে বিভিন্ন আচরণ লক্ষ্য করা যায়। অবশ্যই এটি বেশিরভাগ ক্ষেত্রে সত্য হবে না তবে কিছু "গা dark় কোণে" আমারও এ জাতীয় সমস্যা হয়েছিল।

  • স্প্রিং-তে প্রচুর অতিরিক্ত গুডিজ রয়েছে, যেমন বসন্ত-পরীক্ষা, এওপি, এমভিসি, জেএসএফ ইন্টিগ্রেশন ইত্যাদি B

উপসংহারে, এটি মূলত আপনার সঠিক ক্ষেত্রে নির্ভর করে।


হতে পারে স্প্রিংয়ের মতো কিছুতে কেবল একটি সার্লেট ইঞ্জিনের প্রয়োজন আরও সঠিক হবে (কোনও জেইই ধারক, সার্লেট ইঞ্জিন! = জেইই ধারকটিতে ইজেবি ব্যবহার করা যেতে পারে)।
পাস্কেল থিভেন্ট

4
ভাল, প্রযুক্তিগতভাবে, স্প্রিংয়ের জন্য কোনও সার্লেট ইঞ্জিনও লাগবে না। উদাহরণস্বরূপ বসন্ত-পরীক্ষা একটি মেমরির প্রসঙ্গে ব্যবহার করে।
বোঝো

4
ভাল, প্রযুক্তিগতভাবে, EJBs কোনও স্ট্যান্ডলোন পাত্রে প্রয়োজন হয় না যদি আপনি এই পথে না যান। EJB 3.1 যেহেতু এমবেডড EJBContainer.createEJBContainer()কনটেইনারটি ব্যবহার করার জন্য স্ট্যান্ডার্ড এপিআই রয়েছে। সুতরাং, এখনও, আপনার বক্তব্য ভুল।
পাস্কেল থিভেন্ট

ঠিক আছে, ৩.১ বেশ নতুন এবং স্পষ্টতই আমি সংযোজনগুলি ভুলে গেছি। আমার উত্তর থেকে এই পয়েন্টটি সরানো।
বোজহো

-30

স্প্রিং মানে ইজেবি পরিপূরক, এটি প্রতিস্থাপন করা নয় not বসন্তটি ইজেবির শীর্ষে একটি স্তর। যেমনটি আমরা জানি, EJB এর কোডিং এপিআই ব্যবহার করে সম্পন্ন হয় যার অর্থ আমরা স্প্রিং ফ্রেমওয়ার্কটি ব্যবহার করে এপিআইতে সমস্ত কিছু প্রয়োগ করতে হবে। আমরা বয়লার-প্লেট কোড তৈরি করতে পারি, তারপরে কেবল সেই প্লেটটি নিয়ে যাই, এতে কিছু স্টাফ যুক্ত করি, তারপরে সবকিছু শেষ হয়ে যায়। অভ্যন্তরীণভাবে বসন্ত EJB এর সাথে সংযুক্ত - EJB ছাড়া বসন্তের অস্তিত্ব থাকত না।

স্প্রিং ব্যবহারের প্রধান সুবিধা হ'ল ক্লাসগুলির মধ্যে কোনও মিল নেই।


8
আপনি সম্পূর্ণ ভুল, দুঃখিত
জাকুব এইচ

4
দুঃখিত @ সাসি এটি একটি সঠিক বা সুন্দর উত্তরের নিকটেও নয় .......
প্রকাশ

4
"ইজেবি ছাড়া বসন্তের অস্তিত্ব থাকত না।" মানুষ, তুমি কি বাস্তবের জন্য? আপনি কি কখনও নিজের জীবনে কোনও ইজেবি ঘোষণায় "ate @ স্টেটলেস" ব্যবহার করেছেন বা ইনজেকশনের জন্য E @EJB টীকা ব্যবহার করেছেন? আপনি কি মনে করেন যে এগুলি জেটি বা টমক্যাটে কাজ করবে? আপনি কীভাবে মনে করেন যে লেনদেনগুলি বসন্তের মধ্যে পরিচালিত হয়? আপনি জানেন যে আপনি ঠিক একটি সার্লেট পাত্রে একটি স্প্রিং অ্যাপ্লিকেশন স্থাপন করতে পারেন?
99 সোনো

দুঃখিত, তবে জাভা EE এর অংশ হিসাবে EJB এর এবং কনভেনশন-ওভার-কনফিগারেশন নীতি হিসাবে বসন্ত উভয়ের সম্পর্কে আপনার সুসংবদ্ধ কাঠামো নেই। বাস্তবে আপনি গভীর খনন না করে আপনি এই ভেবে শেষ করতে পারেন যে এগুলি কতটা একই জিনিস বা সম্পর্কিত বা এই জাতীয় কিছু whatever কেন? তাদের উভয়েরই ইনজেকশনের মতো মিল রয়েছে তবে তাদের মধ্যে পার্থক্য বিশাল। এটি সত্য যে ইজিবির জটিলতার কারণে সময়ে বসন্ত ইজিবির পিছনে বিকল্প হিসাবে জন্মগ্রহণ করেছিল তবে তা ছিল। জাভা EE 5 (EJB 3) এর সময় যথেষ্ট ভাল ছিল যেভাবে বসন্ত তাদের
সিওসির সাথে করছিল সেভাবেই পুনরুদ্ধার করা হয়েছিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.