Apa manfaat dari file multi-konfigurasi musim semi?
Memisahkan file konfigurasi sesuai dengan tujuan dan fungsi dapat meningkatkan keterbacaan dan pemeliharaan file konfigurasi, seperti konfigurasi terpisah dengan beberapa perubahan seperti manajemen transaksi konfigurasi dan sumber data dan kacang konfigurasi.
Beberapa cara Spring membaca file konfigurasi:
1. Baca menggunakan metode ApplicationContext yang disediakan oleh Spring itu sendiri
Dalam program JAVA, Anda dapat menggunakan ApplicationContext dua kelas implementasi ClassPathXMLapPlicationContext dan FileSyStemXMLapPlicationContext untuk membaca beberapa file konfigurasi, dan konstruktor mereka dapat menerima array file konfigurasi.
Misalnya: ApplicationContext ctx = classpathxmlapplicationContext baru (configLocations); Mirip dengan cara membuat ApplicationContext menggunakan FileSyStemXMLapPlicationContext, satu -satunya perbedaan adalah bahwa jalur dua file konfigurasi pencarian berbeda: ClassPathXMLapPLicationContext mencari file konfigurasi melalui jalur ClassPath: FileSySySySystemXMLicationContext mencari file konfigurasi di jalur saat ini.
Metode 1: Simpan Objek ApplicationContext Selama Inisialisasi
Kode:
ApplicationContext Ac = FileSySyStemXMLapPLicationContext baru ("ApplicationContext.xml"); ac.getbean ("beanid"); menjelaskan:
Metode ini cocok untuk aplikasi yang berdiri sendiri menggunakan kerangka kerja Spring, di mana program membutuhkan pegas untuk diinisialisasi secara manual melalui file konfigurasi.
Metode 2: Dapatkan Objek ApplicationContext melalui kelas alat yang disediakan oleh Spring
Kode:
impor org.springframework.web.context.support.webApplicationContextUtils; ApplicationContext AC1 = WebApplicationContextutils.getRequiredWebApplicationContext (ServletContext SC) ApplicationContext AC2 = WebApplicationContextutils.getWebApplicationContext (ServletContext sc) ac1.getbean ("beanid"); ac2.getbean ("beanid"); menjelaskan:
Metode ini cocok untuk sistem B/S menggunakan Spring Framework, memperoleh objek ApplicationContext melalui objek ServletContext, dan kemudian mendapatkan instance kelas yang diperlukan melalui itu.
Perbedaan antara dua metode alat di atas adalah bahwa yang pertama melempar pengecualian ketika akuisisi gagal, dan yang terakhir mengembalikan nol.
Metode 3: Diwarisi dari Abstrak ApplicationObjectSupport
menjelaskan:
Abstrak Class ApplicationObjectSupport menyediakan metode getApplicationContext (), yang dapat dengan mudah mendapatkan ApplicationContext. Ketika pegas diinisialisasi, objek ApplicationContext akan disuntikkan melalui metode SetApplicationContext (ApplicationContext Context) dari kelas abstrak.
Metode 4: Diwarisi dari Kelas Abstrak WebApplicationObjectSupport
menjelaskan:
Mirip dengan metode di atas, hubungi getWebApplicationContext () untuk mendapatkan WebApplicationContext
Metode 5: Menerapkan antarmuka ApplicationContextAware
menjelaskan:
Menerapkan metode SetApplicationContext (ApplicationContext Context) dari antarmuka ini dan simpan objek ApplicationContext. Ketika pegas diinisialisasi, objek ApplicationContext disuntikkan melalui metode ini.
Metode di atas cocok untuk situasi yang berbeda, silakan pilih metode yang sesuai sesuai dengan situasi tertentu.
2. Memuat saat menggunakan startup proyek web
File konfigurasi apa yang dimuat secara otomatis di web.xml:
<context-param> <Param-name> ContextConfigLocation </param-name> <param-value> /web-inf/spring/spring-core.xml </param-value> </context-param> <servlet> <servlet-name> springmvc </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <Ilin-param> <param-name> ContextConfigLocation <param-name> <param-value>/web- Inf/spring/spring-servlet.xml </param-value> </init-param> <Boad-on-startup> 1 </load-on-startup> </servlet> <servlet-Mapping> <servlet-name> springmvc </servlet-name> <ratl-pola>/</url-pola> </servlet>
Ketika ada beberapa angka, Anda dapat menggunakan * untuk menggantinya.
<servlet> <servlet-name> Aplikasi </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <Context-param> <param-name> ContextConfigLocation </param-name> <param-value> /web-inf/applicationContext*.xml ,/web-inf/user_spring.xml </param-value> </context-param> <load-on-tartup> 1 </boad-in-startup> </servlet>
3. Impor file konfigurasi lainnya ke dalam file konfigurasi XML
Konfigurasikan layanan aplikasi untuk memuat di /web-inf/applicationcontext.xml. Anda dapat menggunakan impor untuk mengimpor file konfigurasi lain di ApplicationContext.xml.
<? Xml Version = "1.0" encoding = "UTF-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: context = "http://www.springframework.org/scema/www.spramework.org/scema/contpema/www.spramework.org/orgaMema/contpa/context" xmlns: p = "http://www.springframework.org/schema/p" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://www.spramework.org/schema/beans http://www.spramework.org/schema/beans http:/www.spramework http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/www.springframework.org/schema/schema/www.springframework.orga/schema/schema http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/tx http:/.www.springframework.org/schema/tx http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"> <preme-sumber spring = "spring-servlet.xml"/<impor sumber daya impor = "spring-secure. resource = "spring-hibernate.xml"/> <import resource = "spring-bedis.xml"/> <import resource = "spring-redis.xml"/> <beans>