ما هي فوائد ملفات الربيع متعددة التكوين؟
يمكن أن يؤدي تقسيم ملفات التكوين وفقًا للغرض والوظيفة إلى تحسين قابلية القراءة وصيانة ملفات التكوين ، مثل تكوينات منفصلة مع تغييرات قليلة مثل إدارة معاملات التكوين ومصادر البيانات وحبوب التكوين.
عدة طرق يقرأ الربيع ملفات التكوين:
1. اقرأ باستخدام طريقة ApplicationContext التي يوفرها الربيع نفسه
في برامج Java ، يمكنك استخدام actionContext فئتين للتطبيق classPathmLapplicationContext و FileSystemxMlapPlicationContext لقراءة ملفات التكوين المتعددة ، ويمكن لملائمهم الحصول على مجموعة من ملفات التكوين.
على سبيل المثال: ApplicationContext CTX = classPathxMlapplicationContext جديد (configlocations) ؛ يشبه طريقة إنشاء ApplicationContext باستخدام ملفات filesystemxmlapplicationContext ، والفرق الوحيد هو أن مسارات ملفات تكوين البحث مختلفة: ClassPathmLapplicationContext يبحث عن ملفات التكوين من خلال مسار ClassPath: FilesystemSmlapplicationContext يبحث ملفات التكوين في المسار الحالي.
الطريقة 1: حفظ كائن ApplicationContext أثناء التهيئة
شفرة:
ApplicationContext ac = new FileSystemXMLAPPlicationContext ("ApplicationContext.xml") ؛ AC.GetBean ("Beanid") ؛ يوضح:
هذه الطريقة مناسبة للتطبيقات المستقلة باستخدام إطار عمل الربيع ، حيث تتطلب البرامج تهيئة الربيع يدويًا من خلال ملفات التكوين.
الطريقة 2: احصل على كائن ApplicationContext من خلال فئة الأدوات التي توفرها الربيع
شفرة:
استيراد org.springframework.web.context.support.webapplicationContextUtils ؛ ApplicationContext AC1 = webapplicationContextutils.getRequiredWebApplicationContext (servletContext SC) ApplicationContext AC2 = WebApplicationContextUtils.getWebPlicationContext (servletContext SC) AC1.GetBean ("BeanID") ؛ AC2.GetBean ("Beanid") ؛ يوضح:
هذه الطريقة مناسبة لأنظمة B/S باستخدام Spring Framework ، والحصول على كائن ApplicationContext من خلال كائن ServletContext ، ثم الحصول على مثيل الفئة المطلوب من خلاله.
الفرق بين طريقتي الأداة أعلاه هو أن الأول يرمي استثناء عند فشل الاستحواذ ، ويعود الأخير الفارغ.
الطريقة 3: موروثة من Application ApplicationObjectSupport
يوضح:
يوفر ApplicationObjectSupport الفئة التجريدية طريقة getApplicationContext () ، والتي يمكن بسهولة الحصول على ApplicationContext. عند تهيئة Spring ، سيتم حقن كائن ApplicationContext من خلال طريقة setAppLicationContext (ApplicationContext Context) للفئة التجريدية.
الطريقة 4: موروثة من فئة مجردة webapplicationObjectSupport
يوضح:
على غرار الطريقة أعلاه ، اتصل بـ getWebapplicationContext () للحصول على webapplicationContext
الطريقة 5: تنفيذ واجهة ApplicationContextAware
يوضح:
قم بتنفيذ طريقة setAppLicationContext (ApplicationContext Context) من هذه الواجهة وحفظ كائن ApplicationContext. عند تهيئة الربيع ، يتم حقن كائن ApplicationContext من خلال هذه الطريقة.
الطرق المذكورة أعلاه مناسبة لحالات مختلفة ، يرجى اختيار الطريقة المقابلة وفقًا للموقف المحدد.
2. التحميل عند استخدام بدء تشغيل مشروع الويب
ما هي ملفات التكوين التي يتم تحميلها تلقائيًا في web.xml:
<Context-Param> <Param-name> contextConfigLocation </param-name> <param-value> /web-inf/spring/spring-core.xml </param-value> </suctext-param> <Sradlet> <Srevlet-Name> springmvc </servlet-name> <Verlet-Class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <Ing-param> <parm-name> contextConflocation </faram-name> <baram-value>/web- inf/spring/spring-servlet.xml </param-value> </IPAR-PARAM> <load-on-startup> 1 </load-on-startup> </servlet> <Servlet Mapping> <Sradlet-Name> springmvc </servlet-name> <url-pattern>/</url-patern> </servlet mapping
عندما تكون هناك أرقام متعددة ، يمكنك استخدام * لاستبدالها.
<Vervlet> <Sradlet-Name> التطبيق </servlet-name> <Sradlet-Class> org.springframework.web.servlet.dispatcherservlet </rectlet-class> <Param-value> /web-inf/applicationcontext*.xml ،
3. استيراد ملفات التكوين الأخرى في ملف تكوين XML
قم بتكوين خدمة التطبيق للتحميل في /web-inf/applicationContext.xml. يمكنك استخدام الاستيراد لاستيراد ملفات التكوين الأخرى في ApplicationContext.xml.
<؟ xmlns: p = "http://www.springframework.org/schema/p" xmlns: tx = "http://www.springframework.org/schema/tx" Xmlns: XSI = "http://www.w3.org/2001/xmlschema-instance" http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context-ctpring-ctpr http://www.springframework.org/schema/mvc http://www.springframework.org/schema/tx/Spring-tx-3.2.xsd Resource = "Spring-servlet.xml"/> <import Resource = "Spring-Security.xml"/> <import Resource = "Spring-Hibernate.xml"/> <import Resource = "Spring-Redis.xml"/>