اجعل الربيع استبدال العناصر النائبة في نوع ملف مختلف (بخلاف تكوينات الربيع)
-
29-09-2019 - |
سؤال
هل هناك طريقة لجعل العناوين النائبة في 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).