مقدمة
هناك العديد من الطرق لضخ الحالات في الربيع ، ولكن بسبب ترتيب التهيئة المختلفة ، فإن طريقة الحقن القائمة على التعليقات التوضيحية عرضة للفشل في الحقن بشكل صحيح بنجاح.
ستقدم هذه المقالة طريقة تعتمد ديناميكيًا لاستخراج الفاصوليا التي تديرها الربيع في مشاريع حقيقية. لن أقول الكثير أدناه ، دعنا نلقي نظرة على المقدمة التفصيلية معًا.
1. حقن مثيلات بناء على وضع العلامات
عند تهيئة الفول ، يجب تهيئة الكائن الذي يعتمد عليه. إذا تمت تهيئة الكائن المحقن في وقت لاحق من الكائن الحالي ، فسيكون الكائن المحقن فارغًا.
1.1 Autowired
تحميل الفاصوليا التي تديرها الربيع حسب النوع. بشكل افتراضي ، يجب أن توجد الفاصوليا. إذا كانت الفاصوليا لاغية ، يمكن ضبط خاصيةها المطلوبة على خطأ. للحصول على تفاصيل محددة ، يرجى الرجوع إلى رمز المصدر:
target ({elementType.constructor ، elementType.method ، elementType.Parameter ، elementType.field ، elementType.annotation_type})@entry (attreencePolicy.Runtime)@dusticedpublic@interface autowired {/*** *** *الإعدادات الافتراضية إلى {code true}.*/boolean مطلوبة () الافتراضي true ؛}إذا كنت بحاجة إلى ضخ الفول بناءً على أمر ، فأنت بحاجة إلى استخدام QAlifier لتسمية الاسم. مثال الكود كما يلي:
@atwired@Qualifier ("beanname") private beantype beanobj ؛نطاق التطبيق: أعلاه المتغيرات ، أساليب Setter والمشاركات.
المصدر: إطار الربيع
1.2 inject
توفرها javax.inject.inject ، يتم تجميعها تلقائيًا على أساس النوع. إذا كنت بحاجة إلى النقل وفقًا للاسم ، فأنت بحاجة إلى استخدام Named in بالاقتران معه. يشبه هذا الاستخدام إلى حد كبير @Autowired المقدم من إطار الربيع.
نطاق التطبيق: المتغيرات ، أساليب Setter ، المُنشئين
المصدر: JSR330 مواصفات حزمة امتداد Javax
مثال رمز:
@enject@named ("Beanname") Beantype Bean ؛1.3 Resource
الافتراضي هو حقن التجميع بالاسم. فقط عندما لا يمكن العثور على الفاصوليا التي تطابق الاسم ، هل سيكون الحقن حسب النوع. يتم توفيره بعد JDK 1.6.
نطاق التطبيق: يمكن تطبيقه على المتغيرات وطرق Setter
المصدر: المقدمة بعد JDK 1.6
مثال استخدام الكود:
Resource (name = "MyBeanName") Beantype Bean ؛
2. طريقة الحقن الديناميكي
الفكرة: استخدم ApplicationContextAware للحصول على مرجع ApplicationContext ، ثم الحصول على الكائن ديناميكيًا استنادًا إلى ApplicationContext.
رمز التنفيذ كما يلي:
@componentpublic class SpringContextUtil تنفذ ApplicationContextAware {// Spring Application Context Environment Private static static applicationContext ؛/** قم بتنفيذ طريقة رد الاتصال في واجهة ApplicationContextAwar applicationcontext ؛}/*** return applicationContext*/public static applicationContext getAppLicationContext () {return applicationcontext ؛}/*** احصلبعد ذلك ، يمكنك الحصول على مثيلات الفول المطلوبة ديناميكيًا في الكود:
Beantype Bean = SpringContextutil.getBean ("Beanname")أليس من السهل جدًا استخدامه؟
لخص
نلخص هنا الطرق المختلفة لحقن الفاصوليا في الربيع ، ولكل منها مزاياها وعيوبها ، ويمكنك اختيار استخدامها.
حسنًا ، ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.