স্প্রিং এমভিসি এবং স্প্রিং বুটের মধ্যে পার্থক্য


234

আমি সবে বসন্ত শিখতে শুরু করেছি। আমার পরবর্তী পদক্ষেপে, আমি বড় ওয়েব অ্যাপ্লিকেশনগুলি বিকাশ করতে চাই।

এখন আমি ভাবছি যে আমার স্প্রিং বুট বা স্প্রিং এমভিসি দিয়ে শুরু করা উচিত। আমি ইতিমধ্যে কিছু স্টাফ পড়েছি, তবে এটি বিভ্রান্তিকর কারণ উভয়টি দেখতে একই রকম।

তাহলে দুজনের মধ্যে পার্থক্য কী?

উত্তর:


320
  • স্প্রিং এমভিসি হ'ল একটি সম্পূর্ণ এইচটিটিপি ওরিয়েন্টেড এমভিসি ফ্রেমওয়ার্ক যা স্প্রিং ফ্রেমওয়ার্ক দ্বারা পরিচালিত হয় এবং সার্লেটলে ভিত্তিক। এটি জাভাEE স্ট্যাকের জেএসএফ এর সমতুল্য হবে। এর মধ্যে সর্বাধিক জনপ্রিয় উপাদানগুলি ক্লাসগুলি এ্যানোটেটেড রয়েছে @Controller, যেখানে আপনি এমন পদ্ধতি প্রয়োগ করেন যেখানে আপনি বিভিন্ন HTTP অনুরোধগুলি ব্যবহার করে অ্যাক্সেস করতে পারেন। এটি @RestControllerREST- ভিত্তিক API গুলি বাস্তবায়নের সমতুল্য ।
  • স্প্রিং বুট হ'ল স্প্রিং-চালিত অ্যাপ্লিকেশনগুলি তৈরি করার জন্য বক্স কনফিগারেশনটি বাইরে সরবরাহ করার জন্য অ্যাপ্লিকেশনগুলি দ্রুত সেট আপ করার জন্য একটি ইউটিলিটি। আপনি হয়তো জানেন যে, স্প্রিং অধীনে বিভিন্ন মডিউল বিস্তৃত সংহত তার ছাতা হিসেবে, বসন্ত-কোর , বসন্ত-ডেটা , বসন্ত ওয়েব (যা স্প্রিং MVC অন্তর্ভুক্ত, পথ দ্বারা) ইত্যাদি। এই সরঞ্জামের সাহায্যে আপনি বসন্তকে বলতে পারেন যে তাদের মধ্যে কতটি ব্যবহার করবেন এবং আপনি তাদের জন্য একটি দ্রুত সেটআপ পাবেন (পরে আপনাকে নিজেরাই এটি পরিবর্তন করার অনুমতি দেওয়া হবে)।

সুতরাং, স্প্রিং এমভিসি ওয়েব অ্যাপ্লিকেশনগুলিতে ব্যবহৃত একটি কাঠামো এবং স্প্রিং বুট হ'ল একটি বসন্ত ভিত্তিক উত্পাদন-প্রস্তুত প্রকল্প সূচক initial আপনি স্প্রিং এমভিসি ট্যাগ উইকি পাশাপাশি এসওতে স্প্রিং বুট ট্যাগ উইকি পরিদর্শন করতে দরকারী হতে পারেন ।


29
হ্যাঁ _1 স্প্রিং
এমভিসি

2
তার মানে কি স্প্রিং বুটটি শুধুমাত্র একটি নিয়ামক রিটার্ন এবং জেএসএন পোস্ট করার জন্য প্রদর্শন (এইচটিএমএল) পৃষ্ঠা প্রদর্শন করতে ব্যবহৃত হয় এবং আমি যদি এইচটিএমএল প্রদর্শন করতে ভিউটি ব্যবহার করতে চাই তবে আমাকে স্প্রিং এমভিসি ব্যবহার করতে হবে?
ওসামা আল-বান্না

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

3
এর অর্থ কি আমি তার সাথে আমার ওয়েব অ্যাপ্লিকেশনটি কনফিগার করতে Spring Bootপারি তার সাথে ওয়েব কার্যকারিতাটি পূরণ করতে Spring MVC?
মাইক

1
@ মাইকে এটি নিশ্চিত করুন
এক্সট্রিম বাইকার

105

স্প্রিং এমভিসি এবং স্প্রিং বুট অন্যান্য উত্তরে ভালভাবে বর্ণনা করা হয়েছে, এবং তাই এটির পুনরাবৃত্তি না করে আমাকে সরাসরি স্পেসিফিকেশনে যেতে দাও। স্প্রিং বুট এবং স্প্রিং এমভিসি তুলনাযোগ্য বা পারস্পরিক একচেটিয়া নয়। আপনি যদি স্প্রিং ব্যবহার করে ওয়েব অ্যাপ্লিকেশন বিকাশ করতে চান তবে আপনি যেভাবেই স্প্রিং এমভিসি ব্যবহার করতে পারেন । আপনার প্রশ্নটি তখন স্প্রিং বুট ব্যবহার করবে কিনা তা হয়ে যায় ।

সাধারণ স্প্রিং অ্যাপ্লিকেশনগুলি বিকাশ করার জন্য বা স্প্রিং শিখতে শুরু করার জন্য, আমি মনে করি স্প্রিং বুট ব্যবহার করার পরামর্শ দেওয়া হবে। এটি কাজটি যথেষ্টভাবে সহজ করে দেয়, উত্পাদন প্রস্তুত এবং দ্রুত ব্যাপকভাবে গৃহীত হচ্ছে।

আমি মাঝে মাঝে নতুনদের এই প্রশ্নটি জিজ্ঞাসা করতে দেখেছি কারণ এসটিএসে (স্প্রিং টুল স্যুট) দুটি উইজার্ড রয়েছে: একটি স্প্রিং বুট প্রকল্প তৈরির জন্য এবং অন্যটি একটি স্প্রিং এমভিসি প্রকল্প তৈরির জন্য। সুতরাং, আমার সুপারিশটি হ'ল একটি স্প্রিং বুট প্রকল্প তৈরি করা এবং এটিতে মডিউল হিসাবে ওয়েবটি বেছে নেওয়া।


1
আপনি যখন বসন্ত-বুট ব্যবহার করেন (স্প্রিং-ডেটা-বিশ্রাম এবং স্প্রিং-ওয়েব সহ) আপনার এখানে এমভিসি নীতি আছে, তাই না? আমি কেবল বিভ্রান্ত হয়ে পড়েছিলাম কারণ আমি ভেবেছিলাম স্প্রিং এমভিসি হ'ল একমাত্র স্প্রিং সংস্করণ যা এমভিসি-মডেল ব্যবহার করে।
ওয়াচমে

5
স্প্রিং-ওয়েবটি বসন্ত-এমভিসি মডিউল ছাড়া কিছুই নয়
সঞ্জয় 12


23

সাধারণ শব্দে এটি হিসাবে বলা যেতে পারে:

Spring boot = Spring MVC + Auto Configuration(Don't need to write spring.xml file for configurations) + Server(You can have embedded Tomcat, Netty, Jetty server).

এবং স্প্রিং বুট একটি মতামত কাঠামো, সুতরাং এটির বিকাশ দ্রুত বিকাশের জন্য বিবেচনা করা, কনফিগারেশনের জন্য কম সময় প্রয়োজন এবং খুব ভাল সম্প্রদায়ের সমর্থন রয়েছে।


19

Spring MVCএমভিসি (মডেল-ভিউ-কন্ট্রোলার) প্যাটার্ন ব্যবহার করে এমন অ্যাপ্লিকেশনগুলির লক্ষ্যবস্তু নকশা এবং বিকাশকে স্প্রিং ফ্রেমওয়ার্কের একটি উপ-প্রকল্প। স্প্রিং এমভিসি স্প্রিং ফ্রেমওয়ার্ক এবং ট্রানজিটিভালি, বেশিরভাগ অন্যান্য সাব-প্রকল্পের সাথে সম্পূর্ণ এবং সম্পূর্ণ সংহত করার জন্য ডিজাইন করা হয়েছে।

Spring Bootস্প্রিং ইঞ্জিনিয়ারিং দল এই নিবন্ধটি থেকে বেশ ভালভাবে বোঝা যায় । এটি ধারণা করা হয়, অর্থাত্ এটি দ্রুত বিকাশের একটি নির্দিষ্ট শৈলীর পক্ষে প্রচুর পরিমাণে সমর্থন করে তবে আপনি যদি চান তবে এটি নিয়মের ব্যতিক্রমগুলিকে সামঞ্জস্য করার জন্য যথেষ্টভাবে নকশা করা হয়েছে। সংক্ষেপে, এটি কনফিগারেশন পদ্ধতি সম্পর্কিত একটি কনভেনশন যা ওয়্যারেন্টেড হলে কনভেনশন ভাঙার আপনার প্রয়োজনীয়তা বুঝতে আগ্রহী।


17

এখানে কিছু মূল বিষয় যা স্প্রিং, স্প্রিং এমভিসি এবং স্প্রিং বুটকে পৃথক করে:

বসন্ত:

  1. প্রধান পার্থক্য হ'ল "টেস্ট-ক্ষমতা"।
  2. ডিআই এবং আইওসি সহ বসন্ত আসে। যার মাধ্যমে সিস্টেমের দ্বারা পরিশ্রম করা আমাদের কোনও ধরণের কাজ করার দরকার নেই (যেমন, আমরা সাধারণত শ্রেণীর বিষয়টিকে ম্যানুয়ালি সংজ্ঞায়িত করি তবে ডি এর মাধ্যমে আমরা কেবল @ সার্ভিস বা @ কম্পোমেন্টের সাথে টীকা দিয়েছি - ম্যাচিং ক্লাস পরিচালনা করে)।
  3. @ অটোভায়ার্ড টীকাগুলির মাধ্যমে আমরা ইউনিট পরীক্ষার সময় এটি সহজেই উপহাস করি ()।
  4. সদৃশ এবং নদীর গভীরতানির্ণয় কোড। জেডিবিসি-তে আমরা একাধিকবার একই কোড লিখি যে কোনও ধরণের ডাটাবেস অপারেশন করতে বসন্ত সেই সমস্যাটি হাইবারনেট এবং ওআরএম এর মাধ্যমে সমাধান করে।
  5. অন্যান্য ফ্রেমওয়ার্কগুলির সাথে ভাল সংহতকরণ। হাইবারনেট, ওআরএম, জুনিট এবং মকিতো এর মতো।

স্প্রিং এমভিসি

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

স্প্রিং বুট:

  1. দ্রুত অ্যাপ্লিকেশন তৈরি করুন যাতে একক বড় ওয়েব অ্যাপ্লিকেশন পরিচালনা করার পরিবর্তে আমরা এগুলিকে পৃথকভাবে বিভিন্ন মাইক্রোসার্ভেসিসগুলিতে ভাগ করি যার নিজস্ব সুযোগ এবং ক্ষমতা রয়েছে have
  2. ওয়েব জার ব্যবহার করে স্বতঃকরণ (উদাহরণস্বরূপ, যদি আমি ডেটাসোর্স কনফিগার করতে চাই, সত্তা ব্যবস্থাপক লেনদেন পরিচালন কারখানা)। ক্লাস-পাথ ব্যবহার করে উপলভ্য না হলে স্বয়ংক্রিয়ভাবে কনফিগার করুন।
  3. ডিফল্ট স্প্রিং স্টার্টার্সের সাথে আসে, যা কিছু ডিফল্ট স্প্রিং কনফিগারেশন নির্ভরতা (যেমন স্প্রিং কোর, ওয়েব-এমভিসি, জ্যাকসন, টমক্যাট, বৈধকরণ, ডেটা বাইন্ডিং, লগিং) এর সাথে আসে। সংস্করণ সমস্যাটি সম্পর্কেও চিন্তা করবেন না।

(বিবর্তনের মতো: স্প্রিং -> স্প্রিং এমভিসি -> স্প্রিং বুট, সুতরাং আরও নতুন সংস্করণে পুরানো সংস্করণ বৈশিষ্ট্যের সামঞ্জস্য রয়েছে)) দ্রষ্টব্য: এতে সমস্ত পয়েন্ট নেই।


10

স্প্রিংবুটটি আসলে পূর্বনির্ধারিত যা বয়লার কনফিগারেশন হ্রাস করে এবং আপনার অ্যাপ্লিকেশন শুরু করার সহজতম বা দ্রুত উপায় সরবরাহ করে।

স্প্রিংবুট স্প্রিংয়ের পরিবর্তে বিকাশকারী থেকে এটি নিজস্ব হয়ে কনফিগারেশনের মাথা ব্যাথা নিয়ে যায়।

স্পষ্টতই স্প্রিংবুট স্প্রিং ফ্রেমওয়ার্ক কনসেপ্ট যেমন সিম, নিয়ামক, পরিষেবাদি, জেপিএ ইত্যাদির উপর ভিত্তি করে is

আপনি বলতে পারেন যে স্প্রিংবুটটি স্প্রিংয়ের একটি মোড়ক।

স্প্রিংবুটে সার্ভারের ডিফল্ট পোর্টটি 8080 হয় তবে আপনি যদি পরিবর্তন করতে চান তবে আপনার অ্যাপ্লিকেশনটিতে যান p

সার্ভার.পোর্ট = 8084


10
  • স্প্রিং বুট ব্যবহার করে আপনাকে কনফিগারেশন তৈরি করতে হবে না। আপনি প্রকল্প তৈরি করার সময় এটি স্বয়ংক্রিয়ভাবে সম্পন্ন হবে।

  • আপনি যদি বসন্তের এমভিসি ব্যবহার করেন তবে আপনাকে নিজেরাই কনফিগারেশন তৈরি করতে হবে। এটি আরও জটিল, তবে এটি গুরুত্বপূর্ণ।


সহজ এবং মার্জিত ব্যাখ্যা
শ্রিতাম জগদেব

8

পূর্ববর্তী
উত্তরে একই জিনিসটির পুনরাবৃত্তি না করে, আমি এই উত্তরটি সেই লোকদের জন্য লিখছি যারা একটি নতুন প্রকল্প শুরু করতে চাইছেন এবং জানেন না যে আপনার প্রকল্পটি শুরু করার জন্য সেরা কাঠামোটি কোনটি। আপনি যদি এই কাঠামোর প্রারম্ভিক হন তবে আমি পছন্দ করি সেরা জিনিসটি হ'ল স্প্রিং বুট (এসটিএস / স্প্রিং টুল স্যুট সহ )। কারণ এটি অনেক সাহায্য করে। এটি নিজস্ব কনফিগারেশনগুলি করে। অতিরিক্তভাবে, একটি ডাটাবেস কাঠামো হিসাবে স্প্রিং-বুট সহ হাইবারনেট ব্যবহার করুন । এই সংমিশ্রণের সাথে আপনার অ্যাপ্লিকেশনটি সেরা হবে। আমি আমার অভিজ্ঞতার সাথে গ্যারান্টি দিতে পারি।

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


5

এইভাবে চিন্তা করুন:

এমভিসি আর্কিটেকচার বাস্তবায়নের জন্য স্প্রিং এমভিসি একটি ওয়েব ভিত্তিক কাঠামো।

স্প্রিং বুট প্রোগ্রামারকে কেন্দ্র করে তৈরি একটি সরঞ্জাম। প্রোগ্রামার অবশ্যই প্রোগ্রামিংয়ে ফোকাস করতে হবে এবং সরঞ্জাম অবশ্যই কনফিগারেশনের উপর ফোকাস করবে। তাই সাধারণ 'হ্যালো ওয়ার্ল্ড' বানাতে আমাদের বেশিরভাগ এক্সএমএল কনফিগার করার দরকার নেই।



1

স্প্রিং এমভিসি এবং স্প্রিং বুট বিভিন্ন উদ্দেশ্যে বিদ্যমান। সুতরাং, একে অপরকে প্রতিযোগী হিসাবে তুলনা করা বুদ্ধিমানের কাজ নয়।

স্প্রিং বুট কি?

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

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

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

স্প্রিং এমভিসি কী?

এটি একটি traditionalতিহ্যবাহী ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক যা আপনাকে ওয়েব অ্যাপ্লিকেশনগুলি তৈরি করতে সহায়তা করে। এটি স্ট্রুটস কাঠামোর সাথে সমান।

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

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

আমি আশা করি এটি আপনাকে পার্থক্য বুঝতে সাহায্য করবে।

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