@ কম্পোনেন্টের সাহায্যে কোনও শ্রেণি বেনিফিট করার সময়, এর অর্থ কি এটি একটি স্প্রিং বিন এবং সিঙ্গেলটন?


111

স্প্রিংয়ে মোটামুটি নতুন হওয়ার কারণে আমার কাছে একটি শ্রেণি বর্ননা সম্পর্কে একটি প্রশ্ন রয়েছে। কোনও শ্রেণীর সাথে বয়ান দেওয়ার সময় এর @Componentঅর্থ কি এই শ্রেণিটি একটি স্প্রিং বিন এবং ডিফল্টরূপে সিঙ্গলটন হবে?

উত্তর:


129

হ্যা ঐটা সঠিক, @Component এটি একটি স্প্রিং শিম এবং একটি সিঙ্গলটন।

ক্লাসটি যদি পরিষেবা স্তরটির অন্তর্ভুক্ত থাকে তবে আপনি এটির সাথে মন্তব্য করতে চাইতে পারেন @Service পরিবর্তে

তবে মনে রাখবেন যে এই টীকাগুলি সনাক্ত করার জন্য আপনাকে এই লাইনটি এখানে রেখে দেওয়া উচিত applicationContext.xml:

<context:component-scan base-package="com.yourcompany" />

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


1
@ কম্পোনেন্ট এবং বা @ সার্ভিস টিকা ইত্যাদি ব্যবহার করার সময় .. এর অর্থ হল যে আমি সিঙ্গলেটগুলি তৈরি করছি, আমি কি চুক্তি সংক্রান্ত বিষয়গুলিতে চালিত হব না? আমার নবাগত ধারণাটি অনুসারে এটি এমন একটি শিমের ফলস্বরূপ আসবে যা অ্যাপ্লিকেশন কনটেক্সট জুড়ে ব্যবহৃত হয়, সুতরাং সমবর্তী ব্যবহারকারীরা একক শিমের জন্য একটি রেফারেন্স পাবেন। নাকি আমি কিছু মিস করছি?
মার্কো

3
@ মারকো যদি আপনার কোনও রাজ্য না থাকে (উদাহরণস্বরূপ ভেরিয়েবলগুলি বসন্তের মটরশুটি থেকে আলাদা), তবে কোনও সম্মিলিত সমস্যা আসবে না।
বোঝো

আপনার প্রতিটি বারের জন্য একটি সিমের একটি নতুন উদাহরণ প্রয়োজন "আপনি চান" বা আপনার প্রতিবার একটি সিমের একটি নতুন উদাহরণ প্রয়োজন হবে না?
হর্ষা

@ বোজো আপনি কী বলতে চাইছেন: "এবং প্রতিবার আপনার কোনও শিমের নতুন উদাহরণ প্রয়োজন হবে না"? এর অর্থ কি স্প্রিংয়ের জন্য একটি নতুন উদাহরণ তৈরি করতে হবে না বা আপনি বিকাশকারী হিসাবে একটি নতুন উদাহরণ তৈরি করার দরকার নেই?
ব্যবহারকারী 1766169

24

ডিফল্টরূপে - হ্যাঁ

তবে, @Scopeটীকাটি ব্যবহার করে আপনি এই আচরণটি ওভাররাইড করতে পারেন । উদাহরণ স্বরূপ:@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)

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