বিশ্বের বসন্ত শিম কি?


397

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


2
গ্রিল বসন্ত উপর নির্মিত হয়। আপনি যদি বসন্তের সাথে পরিচিত না হন তবে আমি আপনাকে কমপক্ষে কিছু উপাদান পড়ার পরামর্শ দিচ্ছি যাতে আপনি যে প্রযুক্তি ব্যবহার করছেন তা বুঝতে পারবেন।
জেফ স্টোর

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

12
@ মারকোফোর্ডবার্গের প্রাচীন সংস্করণটি যে গুগলের উপরে সবচেয়ে বেশি প্রভাব ফেলেছে তার অন্যতম কারণ হ'ল লোকেরা এসও এর মতো জায়গা থেকে এটি যুক্ত করে চলেছে ... স্ট্যাটিক.স্প্রিংসোর্স.আর / স্প্রিং / ডকস / ৩.২.x/ … আরও ভাল হবে এই দিন শুরু করার জায়গা।
আয়ান রবার্টস

5
+1 @ ইয়ানরোবার্টস। এখানে বর্তমান একটি
dmahapatro

আইওসি ডিআই হিসাবে পরিচিত, এই বলে তারা আইওসির সাথে পরিচয় করিয়ে দেয় তাতে কোনও লাভ হয় না। এগুলি হ্যাঁ সম্পর্কিত, তবে আইওসি আরও বিস্তৃত।
আলুয়ান হাদাদাদ

উত্তর:


212

আপনার অ্যাপ্লিকেশনটির মেরুদণ্ড গঠনকারী এবং স্প্রিং আইওসি * ধারক দ্বারা পরিচালিত বস্তুগুলিকে মটরশুটি বলা হয়। শিম এমন একটি বস্তু যা তাত্ক্ষণিকভাবে একত্রিত হয় এবং অন্যথায় একটি স্প্রিং আইওসি ধারক দ্বারা পরিচালিত হয়। এই মটরশুটি কনফিগারেশন মেটাডেটা দিয়ে তৈরি করা হয় যা আপনি ধারককে সরবরাহ করেন, উদাহরণস্বরূপ, এক্সএমএল <bean/>সংজ্ঞা আকারে ।

স্প্রিংসোর্স থেকে মটরশুটি এবং স্কোপ সম্পর্কে আরও জানতে :

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

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

* আইওসি: নিয়ন্ত্রণের বিপরীতমুখীকরণ


10
সুতরাং এই জিনিসগুলি যা ধারক পরিচালনা করে এবং আমাকে স্পর্শ করতে হবে না, তবে আমি যদি কোনও শিমের অ্যাক্সেস পেতে চাই তবে কিছু পদ্ধতি কল করতে বা বৈশিষ্ট্যগুলি পুনরুদ্ধার করতে চাই, তবে আমি শিমের জন্য বসন্ত "জিজ্ঞাসা" করতে পারি?
গ্র্যান্টমেকনৌঘে

22
@grantmc এটি এর মতো, নিয়ন্ত্রণ বিষয়টিকে উল্টানো ব্যতীত "জিজ্ঞাসা" এর বিপরীত হিসাবে বোঝা যায়: জিনিসগুলির জন্য "জিজ্ঞাসা" না করে আপনি "ঘোষণা" করেন যে আপনার এটির প্রয়োজন হবে। এবং তারপরে, আপনি যখন অ্যাপ্লিকেশনটি শুরু করবেন, ফ্রেমওয়ার্কটি সমস্ত ঘোষণা চেক করবে এবং উপযুক্ত উদাহরণটি সেট করবে।
এলিয়াস ডরনেলেস

6
@ এলিয়াস আমি কীভাবে ঘোষণা করব যে আমার এটির প্রয়োজন? আমি ব্যবহার করছি যখন এটি @Autowired? বা কেবল যখন আমি আমার importএস?
মিখাইল ব্যাটার

16
বসন্তের নতুনদের জন্য আইওসি অর্থ কী তা নির্ধারণ করা সহায়ক হবে।
লুকাস

4
@ লুকাশ সম্মত আইওসি হ'ল "ইনভার্শন অফ কন্ট্রোল"। চমৎকার প্রশ্নোত্তর দেখুন: স্প্রিং ফ্রেমওয়ার্কে নির্ভরতা ইনজেকশন এবং নিয়ন্ত্রণের বিপরীতটি কী? এবং নিয়ন্ত্রণের বিপরীতটি কী?
মহড়াদেক

135

স্প্রিং মটরশুটি হ'ল দৃষ্টান্তসই বস্তু যা স্প্রিং কনটেইনার দ্বারা পরিচালিত হয়, তারা ফ্রেমওয়ার্ক দ্বারা তৈরি এবং তারযুক্ত হয় এবং "অবজেক্টস ব্যাগ" (ধারক) এ রেখে দেয় যেখানে আপনি পরে সেগুলি পেতে পারেন।

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

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

স্প্রিং ফ্রেমওয়ার্কের কেন্দ্রিয় হ'ল এটির নিয়ন্ত্রণ কন্ট্রারের বিপরীততা, যা প্রতিবিম্বের সাহায্যে জাভা অবজেক্টগুলি কনফিগার এবং পরিচালনা করার একটি ধারাবাহিক মাধ্যম সরবরাহ করে। ধারক নির্দিষ্ট অবজেক্টের অবজেক্ট লাইফসাইক্যাল পরিচালনা করার জন্য দায়বদ্ধ: এই বিষয়গুলি তৈরি করা, তাদের প্রারম্ভিককরণের পদ্ধতিগুলি কল করা এবং এই বস্তুগুলিকে একসাথে তারের মাধ্যমে কনফিগার করা।

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

নির্ভরতা অনুসন্ধান বা নির্ভরতা ইনজেকশন এর মাধ্যমে বস্তুগুলি পাওয়া যায় । নির্ভরতা অনুসন্ধান হল এমন একটি প্যাটার্ন যেখানে কলার ধারক বস্তুকে একটি নির্দিষ্ট নাম বা কোনও নির্দিষ্ট ধরণের কোনও অবজেক্টের জন্য জিজ্ঞাসা করে। নির্ভরতা ইনজেকশন এমন একটি প্যাটার্ন যেখানে কনটেইনারটি কনস্ট্রাক্টর, বৈশিষ্ট্য বা কারখানার পদ্ধতির মাধ্যমে কোনও বস্তু নাম দিয়ে অন্য বস্তুর কাছে প্রেরণ করে।


একটি উদাহরণ নিছক বস্তুর অন্য শব্দ। আপনি যখন "অবজেক্ট ইনস্ট্যান্স" ব্যবহার করেন আপনি কি অবজেক্ট অবজেক্টস বলছেন না?
উডুনের শিখা

আকর্ষণীয় প্রশ্ন। উইকিপিডিয়া অনুসারে এর পরিবর্তে আমার "ইনস্ট্যান্স অবজেক্টস" বলতে হবে:
en.wikedia.org/wiki/Instance_( কম্পিউটার_সায়েন্স

2
খরগোশের গর্ত আরও গভীর হয়।
উডুনের শিখা

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

1
@ রুইজি একটি নিয়মিত বস্তু, অর্থাত্ কোনও শ্রেণীর উদাহরণ - এই আলোচনাটি কোনও অবজেক্টের উল্লেখ করার জন্য সঠিক অভিব্যক্তিটি ব্যবহার করার পক্ষে একটি বহর ছিল। :)
ইলিয়াস ডরনেলেস

50

প্রথমে আমাদের বসন্তটি বুঝতে দিন:

বসন্ত একটি হালকা ও নমনীয় কাঠামো framework

সাদৃশ্য:
এখানে চিত্র বর্ণনা লিখুন

বিন: একটি বস্তু, যা স্প্রিং কনটেইনারটিতে তৈরি, পরিচালিত এবং ধ্বংস হয়। আমরা মেটাডেটা (এক্সএমএল বা টিকা) এর মাধ্যমে স্প্রিং কনটেইনারটিতে একটি বস্তু ইনজেক্ট করতে পারি, যাকে নিয়ন্ত্রণের বিপরীতমুখী বলা হয়।

সাদৃশ্য: আসুন আমরা ধরে নিই যে কৃষকের বীজ (বা মটরশুটি) দ্বারা একটি জমি চাষ হচ্ছে। এখানে কৃষক হ'ল স্প্রিং ফ্রেমওয়ার্ক, ফার্মল্যান্ড ল্যান্ড হ'ল স্প্রিং কনটেইনার, শিম হ'ল স্প্রিং বিন, চাষ হ'ল স্প্রিং প্রসেসর।

এখানে চিত্র বর্ণনা লিখুন

শিমের জীবনচক্রের মতো, বসন্ত মটরশুটিও এর নিজস্ব জীবনচক্র।

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

img উত্স

নীচে বসন্তে একটি শিমের জীবনচক্রের ক্রম রয়েছে:

  • ইনস্ট্যানিয়েট করুন: প্রথমে বসন্তের ধারকটি এক্সএমএল ফাইল থেকে শিমের সংজ্ঞাটি সন্ধান করে এবং শিমটি তাত্ক্ষণিক করে।

  • জনসংখ্যা বৈশিষ্ট্য: নির্ভরতা ইনজেকশন ব্যবহার করে, বসন্ত বিনের সংজ্ঞা অনুসারে নির্দিষ্ট সমস্ত বৈশিষ্ট্যকে পপুলেট করে।

  • শিমের নাম সেট করুন: শিম BeanNameAwareইন্টারফেস প্রয়োগ করে , বসন্ত শিমের আইডি setBeanName()পদ্ধতিতে পাস করে ।

  • বিনের ফ্যাক্টরি সেট করুন: শিম যদি BeanFactoryAwareইন্টারফেস প্রয়োগ করে তবে বসন্তটি বিণফ্যাক্টরীকে setBeanFactory()পদ্ধতিতে পাস করে ।

  • প্রাক-সূচনা: শিমের পোস্ট প্রক্রিয়াও বলা হয়। সিমের সাথে যদি কোনও বিন শিমের পোস্টপ্রেসেসর যুক্ত থাকে তবে স্প্রিং কল postProcesserBeforeInitialization()পদ্ধতি।

  • মটরশুটি সূচনা: শিম প্রয়োগ করে IntializingBean, তার afterPropertySet()পদ্ধতি বলা হয়। শিমের দীক্ষা পদ্ধতি ঘোষণা থাকলে, নির্দিষ্ট সূচনা পদ্ধতির নাম বলা হয়।

  • প্রারম্ভিককরণ: - BeanPostProcessorsশিমের সাথে যদি কোনও যুক্ত থাকে তবে তাদের postProcessAfterInitialization()পদ্ধতিগুলি কল করা হবে।

  • ব্যবহারের জন্য প্রস্তুত: এখন শিমটি অ্যাপ্লিকেশন দ্বারা ব্যবহারের জন্য প্রস্তুত

  • ধ্বংস করুন: শিম প্রয়োগ করে DisposableBean, এটি destroy()পদ্ধতি কল করবে


23

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

আপনি মটরশুটিগুলি এমনভাবে বেঁধে রাখেন, যাতে আপনাকে শিমের উপর কোনও নির্ভরতার মূল্যায়ন বা তাত্পর্যপূর্ণ না করতে হয়। এটি হলিউডের প্রিন্সিপাল হিসাবে জনপ্রিয় ।

এই প্রশ্নে আপনি যে লিঙ্কগুলি দিয়ে এখানে প্লাবিত হবেন সেগুলি ছাড়াও এ সম্পর্কে আরও অন্বেষণ করার সেরা সরঞ্জাম গুগল। :)


2
আইওসি ধারণাটি চিহ্নিত করতে পারে না এবং আইওসি অর্জনের জন্য ডিআই (একটির) কৌশলটি ব্যবহার করা যেতে পারে, সেগুলি প্রতিস্থাপনযোগ্য সংজ্ঞা নয়।
কেককো 12

9

বসন্তে আইওসি ধারক রয়েছে যা শিমের ব্যাগ বহন করে; সৃজনশীল রক্ষণাবেক্ষণ এবং মুছে ফেলা হ'ল স্প্রিং কনটেইনার এর দায়িত্ব। আমরা ওয়্যারিং এবং অটো ওয়্যারিংয়ের মাধ্যমে শিমটি বসন্তে রাখতে পারি। তারের অর্থ আমরা এটিকে XML ফাইলটিতে ম্যানুয়ালি কনফিগার করেছি এবং "অটো ওয়্যারিং" এর অর্থ আমরা জাভা ফাইলটিতে টীকাগুলি রাখি তারপরে স্প্রিংটি স্বয়ংক্রিয়ভাবে জাভা কনফিগারেশন ফাইলের মূল-প্রসঙ্গটি স্ক্যান করে এটি তৈরি করে স্প্রিংয়ের ব্যাগে রাখে।

শিম সম্পর্কে আরও তথ্য আপনি কোথায় পেয়েছেন সেই বিশদ ইউআরআই এখানে is


8

বসন্ত মটরশুটি ক্লাস হয়। ক্লাসটি ইনস্ট্যান্ট করার পরিবর্তে (ব্যবহার করে new) beanআপনি নিজের শ্রেণীর ধরণের জন্য একটি অ্যাপ্লিকেশন প্রসঙ্গ থেকে কাস্ট হিসাবে একটি উদাহরণ পাবেন , যেখানে বিনটি আপনি অ্যাপ্লিকেশন প্রসঙ্গে কনফিগারেশনে কনফিগার করেছেন। এইভাবে, পুরো অ্যাপ্লিকেশনটি পুরো অ্যাপ্লিকেশন জুড়ে সিঙ্গলটন-স্কোপ উদাহরণটি বজায় রাখে। সমস্ত মটরশুটি প্রয়োগের প্রসঙ্গটি তাত্ক্ষণিকভাবে ঠিক হওয়ার পরে তাদের কনফিগারেশন আদেশের পরে শুরু করা হয়। এমনকি আপনি যদি আপনার অ্যাপ্লিকেশনটিতে কোনও মটরশুটি না পান, আপনি অ্যাপ্লিকেশন প্রসঙ্গটি তৈরি করার পরে সমস্ত মটরশুটি ইতিমধ্যে তৈরি করা হয়েছে।


1
মটরশুটি ক্লাস নয় , তবে একটি ধারক প্রয়োগের মাধ্যমে পরিচালিত ক্লাসের উদাহরণ হিসাবে বস্তু।
চটাটাটা

7
  • স্প্রিং মটরশুটি হ'ল অবজেক্টের দৃষ্টান্ত যা স্প্রিং আইওসি ধারক দ্বারা পরিচালিত হয়।

  • স্প্রিং আইওসি কনটেইনারটি ব্যাগ অফ বিনের বহন করে e বিয়ান তৈরি, রক্ষণাবেক্ষণ এবং মোছা স্প্রিং কনটেইনারগুলির দায়িত্ব।

  • আমরা ওয়্যারিং এবং অটো ওয়্যারিংয়ের মাধ্যমে শিমটি বসন্তে রাখতে পারি।

  • তারের অর্থ হ'ল আমরা ম্যানুয়ালি এটিকে XML ফাইলে কনফিগার করেছি।

  • অটো ওয়্যারিং এর অর্থ আমরা জাভা ফাইলটিতে টীকাগুলি রাখি তারপরে স্প্রিং স্বয়ংক্রিয়ভাবে রুট প্রসঙ্গটি স্ক্যান করে যেখানে জাভা কনফিগারেশন ফাইল, এটি তৈরি করে স্প্রিংয়ের ব্যাগে রেখে দেওয়া।


7

একটি বিন একটি POJO (সমতল পুরাতন জাভা অবজেক্ট), যা বসন্তের ধারক দ্বারা পরিচালিত হয়।

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

@ বিয়ান টীকাগুলি এমন একটি বস্তু ফেরত দেয় যা স্প্রিং হিসাবে প্রয়োগের প্রসঙ্গে শিম হিসাবে নিবন্ধিত হয়। পদ্ধতির অভ্যন্তরের যুক্তি দৃষ্টান্ত তৈরির জন্য দায়ী।

আমরা কখন বিয়ান এনোটেশন ব্যবহার করব?

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

রিয়েল টাইম দৃশ্যাবলীটি এমন হতে পারে যে কেউ অ্যামাজন এস 3 বালতির সাথে সংযোগ স্থাপন করতে চায়। উত্সটি উপলভ্য না হওয়ায় তাকে @ বিবিয়ান তৈরি করতে হবে।

@Bean
public AmazonS3 awsS3Client() {
    BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsKeyId, accessKey);
    return AmazonS3ClientBuilder.standard().withRegion(Regions.fromName(region))
            .withCredentials(new AWSStaticCredentialsProvider(awsCreds)).build();
}

উপরের কোডটির উত্স -> https://www.devglan.com/spring-mvc/aws-s3-java

কারণ আমি উপরে @ কম্পোনেন্ট টীকা উল্লেখ করেছি।

@ কম্পোনেন্টটি নির্দেশ করে যে কোনও টীকাগুলি শ্রেণি একটি "উপাদান"। এ্যানোটেশন-ভিত্তিক কনফিগারেশন এবং ক্লাস পাথ স্ক্যানিং ব্যবহার করার সময় এই জাতীয় ক্লাসগুলি স্বতঃ-সনাক্তকরণের প্রার্থী হিসাবে বিবেচিত হয়।

উপাদান টীকা ক্লাসটি একক বিন হিসাবে নিবন্ধিত করে।


2

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


1

বসন্তের জন্য, সমস্ত বস্তু মটরশুটি হয়! স্প্রিং ফ্রেমওয়ার্কের মৌলিক পদক্ষেপ হ'ল আপনার বস্তুকে মটরশুটি হিসাবে সংজ্ঞায়িত করা। বিনগুলি বস্তুর দৃষ্টান্ত ছাড়া কিছুই নয় যা তাদের শ্রেণি সংজ্ঞা দেখে বসন্তের কাঠামোর দ্বারা তৈরি করা হবে। এই সংজ্ঞাগুলি মূলত কনফিগারেশন মেটাডেটা গঠন করে। ফ্রেমওয়ার্কটি তারপরে একটি পরিকল্পনা তৈরি করে যার জন্য অবজেক্টগুলি ইনস্ট্যান্ট করা দরকার, কোন নির্ভরতাগুলি সেট এবং ইনজেকশন করা দরকার, নতুন তৈরি হওয়া উদাহরণের ক্ষেত্র ইত্যাদি এই কনফিগারেশন মেটাডেটার উপর ভিত্তি করে।

মেটাডেটা প্রথম অধ্যায়ের মতো একটি সাধারণ এক্সএমএল ফাইলে সরবরাহ করা যেতে পারে। বিকল্পভাবে, কেউ টিকা বা জাভা কনফিগারেশন হিসাবে মেটাডেটা সরবরাহ করতে পারে।

বই: জাস্ট বসন্ত


1

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

MyRepository myRepository =new MyRepository ();

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

<bean name="myRepository " 
      class="com.demo.repository.MyRepository " />

এখন আমরা কেবল সেটটার ইঞ্জেকশন / কনস্ট্রাক্টর ইনজেকশন ব্যবহার করতে পারি। আমি সেটার ইনজেকশন ব্যবহার করছি।

public class MyServiceImpl implements MyService {
    private MyRepository myRepository;
    public void setMyRepository(MyRepository myRepository)
        {
    this.myRepository = myRepository ;
        }
public List<Customer> findAll() {
        return myRepository.findAll();
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.