اجعل الربيع استبدال العناصر النائبة في نوع ملف مختلف (بخلاف تكوينات الربيع)

StackOverflow https://stackoverflow.com/questions/3914971

سؤال

هل هناك طريقة لجعل العناوين النائبة في Spring (v.3.0) في الملفات ليست كذلك .properties؟ أعلم أنه يمكنني كتابة بلدي PropertyPlaceholderConfigurer لكنني كنت أبحث عن طريقة "أنظف" للقيام بذلك.

تعديل:

لكي أكون أكثر تحديدًا ، ما أريد فعله بالفعل هو استبدال العناصر النائبة الموجودة في .sql الملفات. لذلك يتم تخزين قيم العناصر النائبة .properties لكن العناصر النائبة تستخدم في .sql الملفات.

هل كانت مفيدة؟

المحلول

أ PropertyPlaceholderConfigurer سوف يحل الفاصوليا محل العناصر النائبة في تعريفات الفاصوليا الأخرى. على وجه التحديد ، يقوم بتحديث قيم خصائص الفول في تعريفات الفول ... قبل إنشاء الفاصوليا بالفعل. لذلك ، إذا كنت تريد استخدامها PropertyPlaceholderConfigurer لتعديل SQL ، يجب أن تكون SQL مضمونة في قيم خاصية الفول. لا يمكن لهذه الفئة استبدال الخصائص في الملفات التعسفية.

إذا كنت ترغب في استبدال العناصر النائبة في الملفات التعسفية ، PropertyPlaceholderHelper الفصل هو رهان أفضل. على سبيل المثال ، الطريقة

String replacePlaceholders(String value, Properties properties)

سوف يحل محل العناصر النائبة في value مع الخصائص المأخوذة من properties إرجاع السلسلة المعاد كتابة. يمكنك بسهولة تكييف / لف هذا لاستبدال العناصر النائبة في ملف.

نصائح أخرى

PropertyPlaceholderConfigurer يمكن تزويدها بتعسفي Properties كائن (عبر properties منشأه).

لا أعرف إذا كنت تستخدم Maven ، ولكن إذا قمت بذلك ، سأستخدم تصفية الموارد لحقن الخصائص في ملفات SQL في وقت النشر (هناك حلول مماثلة لـ ANT ، أيضًا) ودع الربيع PropertyPlaceholderConfigurer استخدم نفس ملفات الخصائص في وقت التشغيل. وبهذه الطريقة ، كل شيء هو المكان الذي ينتمي إليه (بعد كل شيء ، أفضل مكان للخصائص هو ملف .properties).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top