مقدمة
نقاط الألم:
في عملية تطوير Java ، يتعين علينا غالبًا مواجهة بيئات مختلفة ، مثل بيئة التطوير وبيئة الاختبار والبيئة الرسمية ، وهذه البيئات لها متطلبات مختلفة للمشاريع.
قبل ذلك ، غالبًا ما نحتاج إلى تعديل ملف التكوين المقابل يدويًا ثم اكتبه في الحرب قبل أن نتمكن من نشره في البيئة المقابلة.
ومع ذلك ، يمكن أن يسبب هذا بسهولة مشاكل ، لأنه من السهل التسبب في تغييرات أقل أو تفوتها ، مما يسبب مشكلة غير ضرورية
خيالي:
مدى سعادة ذلك إذا كان هناك شيء سمح لنا بتحديد معلمة عندما نكتب الحرب وتجميع المشروع تلقائيًا في الحرب في البيئة المقابلة! ! !
النتيجة: هناك شيء من هذا القبيل حقًا ، وهو مافن بيروفيل
أثناء عملية التطوير ، غالبًا ما نقوم بتكوين معلمات مختلفة وفقًا لبيئات مختلفة ، مثل IP ، اسم المستخدم ، كلمة المرور ، عنوان URL ، المفتاح السري ، إلخ. لمصدر البيانات. الطريقة التقليدية هي تعديل قيم المعلمة في ملف الخصائص أو التعليق والتعليق في ملف التكوين. هذا ليس عرضة للأخطاء فحسب ، بل يضيع أيضًا وقتًا غير ضروري. الأهم من ذلك ، من السهل نسيان نشر الكود على بيئة الاختبار أو بيئة الإنتاج. لحل هذه المشكلة ، يوفر Maven حلاً ، وهو ملف تعريف.
الصورة التالية هي طريقة تقليدية ، وتحتاج إلى تعليقات وتفسيرات ذهابًا وإيابًا
الموقع المحدد بواسطة الملف الشخصي
تنفيذ طريقة المرشح
الخطوة 1: تحديد الملفات الثلاثة لـ Application-dev.properties ، واختبار التطبيق.
التطبيق dev.properties
env.jdbc.username = devenv.jdbc.password = 123456
اختبار-اختبار
env.jdbc.username = testenv.jdbc.password = 888888
التطبيق pro.properties
env.jdbc.username = rootenv.jdbc.password = 666666
الخطوة 2: تحديد إجمالي ملف Property File.
application.properties
.
الخطوة 3: تكوين ملف التعريف
<Freftiles> <ffression> <!-بيئة التطوير-> <id> dev </id> <properties> <iv> dev </rev> </properties> <encipation> <!-قم بتعيين التنشيط الافتراضي لهذا التكوين-> <activeByDefault> true </expistaul </sfressions> </sfressions> </sullful> <sweft> <!-بيئة الإصدار-> <id> pro </id> <properties> <rip> pro </rev> </quorties> </sflift> </profile> </sullf> </profile> </profile> <! </fressions>
الخطوة 4: تكوين المرشح والمورد
$ {env} هو اسم mvn package -P <env> ، والذي يخبر المفتاح المطبق في Application.Properties هو مفتاح ملف الخصائص.
<Build> <IntyName> ملف تعريف الملف الشخصي </finalName> <!-تحديد عنوان ملف التكوين المتغير-> <filters> <filter> src/main/resources/application/application-$ {env} .properties </filter> </filters> <uccedins> <roupiD> org.apache.maven.plugins </groupId> <ArtifactId> maven-war-plugin </stifactid> </spliexin> </sults> </build> حزمة وتشغيل
// إذا لم يتم تحديد البيئة ، فإن الافتراضي هو بيئة مع ActiveByDefault = true. حاليًا ، يشير إلى حزمة بيئة التطوير MVN // البيئة المحددة في الحزمة تمر المعلمة -P ، لاحظ أن P هي MVN Package -P <iv>
من نتيجة تشغيل اختبار MVN PACKEGE -P ، يمكنك أن ترى أن jdbc.username و jdbc.password في الفئات/التطبيق. perperties في الدليل المستهدف المولد هي قيم env.jdbc.username و env.jdbc.password التي تم تكوينها في application -test.properties.
إذا كنت ترغب في استخدام ملف تكوين السمة في فصل الربيع ، فما عليك سوى تقديم ملف التكوين الكلي هذا مباشرة ، وانتهت مهمة ملفات تكوين البيئة الأخرى.
<context:property-placeholder location="classpath:application.properties"/>
مبدأ التنفيذ:
تحديد ملفات تعريف مختلفة لكل بيئة مختلفة في pom.xml. كل ملف تعريف له اسم البيئة. ثم حدد ملفات التكوين المختلفة لبيئات مختلفة (مثل application-<env>.properties ) ، ثم تحديد ملف خاصية إجمالي (مثل Application.properties). ثم اترك قيمة التطبيق application-<env>.properties وبهذه الطريقة ، فإن قيمة المفتاح في التطبيق.
طريقة تنفيذ الموارد متعددة
خطوة
الخطوة 1: قم بإنشاء دليل ENV في SRC/MAIN/المورد ، ثم قم بإنشاء دليل فرعي لكل بيئة ، ثم قم بإنشاء ملف يسمى Config.properties تحت كل دليل على البيئة. كل مفتاح هو نفسه والقيمة مختلفة.
env/dev/config.properties
jdbc.username = devjdbc.password = 123456
env/test/config.properties
jdbc.username = testjdbc.password = 888888
env/pro/config.properties
jdbc.username = rootjdbc.password = 666666
الخطوة 2: إنشاء تطبيق مستقل للبيئة.
application.properties
# ملح التكوين العام = 123456789
الخطوة 3: تكوين الملفات الشخصية
<Freftiles> <ffression> <!-بيئة التطوير-> <id> dev </id> <properties> <iv> dev </rev> </properties> <encipation> <!-قم بتعيين التنشيط الافتراضي لهذا التكوين-> <activeByDefault> true </expistaul </sprenties> </sfressions> </sflift> <sfull> <!-بيئة الإصدار-> <id> pro </id> <froperties> <iv> pro </rev> </properties> </propertis
الخطوة 4: تكوين المورد
<Build> <IninalName> ملف تعريف الملف الشخصي </finalName> <!-تحديد عنوان ملف التكوين المتغير-> <sroffect> <sroffectory> src/main/resources </directory> <arcase> <spharude> env/dev/*</exclude> <Filtering> true </filtering> </srosesr> <sroffer> <Cirlive> src/main/resources/env/$ {env} </directory> <sudge> <sudge>*. <roughid> org.apache.maven.plugins </groupId> <StifactId> maven-war-plugin </stifactid> </spliexin> </spliexin> </clupins> </build> الخطوة 5: تشغيل mvn package -P test
إذا كنت تستخدم mvn package -P <env> فيمكنك تكوين بعض maven في Idea. الخطوات هي: تحرير التكوينات ...- +-- Maven-- أضف أوامر Maven لكل بيئة. في المستقبل ، انقر نقرًا مزدوجًا فوق أي من تكوينات التشغيل ، وهو ما يعادل تشغيل الأمر mvn package -P <env> .
مقارنة بين الطريقتين
ستقوم طريقة التصفية بتعبئة جميع ملفات Application-dev.properties ، واختبار التطبيق. إذا كانت هناك ملفات أخرى (مثل .xml) ولديها تكوينات مختلفة وفقًا لبيئات مختلفة ، من الصعب التعامل مع هذه الطريقة.
عند التغليف ، تقوم طريقة الموارد المتعددة فقط بتعبئة ملفات التكوين للبيئة المحددة. يمكنك وضع ملفات مختلفة في مجلدات البيئة الخاصة بها ، وسيتم تعبئة المجلد بأكمله عند العبوة. نوصي بهذه الطريقة
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.