@ অটোয়ারওয়্যারড + @ কোয়ালিফায়ার কেবল স্প্রিং ডিআইয়ের সাথে কাজ করবে, যদি আপনি ভবিষ্যতে অন্য কিছু ডিআই ব্যবহার করতে চান তবে @ রিসোর্স ভাল বিকল্প।
অন্যান্য পার্থক্য যা আমি খুব তাড়াতাড়ি পেয়েছি তা হ'ল @ কোয়ালিফায়ার গতিশীল শিমের ওয়্যারিং সমর্থন করে না, কারণ @ কোয়ালিফায়ার স্থানধারককে সমর্থন করে না, যখন @ রিসোর্স এটি খুব ভাল করে।
উদাহরণস্বরূপ: যদি আপনার একাধিক বাস্তবায়নের সাথে ইন্টারফেস থাকে
interface parent {
}
@Service("actualService")
class ActualService implements parent{
}
@Service("stubbedService")
class SubbedService implements parent{
}
@ অ্যাটুওয়ার্ড এবং @ কোয়ালিফায়ার সহ আপনার নির্দিষ্ট বাচ্চাদের বাস্তবায়ন যেমন সেট করা দরকার
@Autowired
@Qualifier("actualService") or
@Qualifier("stubbedService")
Parent object;
@ রিসোর্স করার সময় যা স্থানধারক সরবরাহ করে না আপনি প্লেসহোল্ডার রাখতে পারেন এবং নির্দিষ্ট শিশু প্রয়োগের জন্য ইনজেক্ট করার জন্য সম্পত্তি ফাইলটি ব্যবহার করতে পারেন
@Resource(name="${service.name}")
Parent object;
যেখানে সম্পত্তি.Name হিসাবে সম্পত্তি ফাইলে সেট করা আছে
#service.name=actualService
service.name=stubbedService
আশা করি যে কাউকে সাহায্য করবে :)