Ada banyak cara untuk mendapatkan kacang di musim semi, dan saya akan meringkasnya lagi:
Tipe Pertama: Simpan Objek ApplicationContext Selama Inisialisasi
ApplicationContext ac = FileSySyStemXMLapPlicationContext baru ("ApplicationContext.xml"); ac.getBean ("beanid"); Catatan: Metode ini cocok untuk aplikasi yang berdiri sendiri menggunakan kerangka kerja Spring, dan program mengharuskan program untuk secara manual menginisialisasi pegas melalui file konfigurasi.
Tipe Kedua: Dapatkan Objek ApplicationContext melalui kelas alat yang disediakan oleh Spring
Impor org.springframework.web.context.support.webappLicationContextUtils; ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext (ServletContext sc); ApplicationContext AC2 = WebApplicationContextUnwapplapplapplapplex sc); ac1.getbean ("beanid"); ac2.getbean ("beanid"); menjelaskan:
1. Kedua metode ini cocok untuk sistem B/S menggunakan Spring Framework, dapatkan objek ApplicationContext melalui objek ServletContext, dan kemudian dapatkan contoh kelas yang diperlukan melalui itu;
2. Metode pertama melempar pengecualian ketika akuisisi gagal, dan metode kedua mengembalikan nol.
Tipe ketiga: Diwarisi dari kelas abstrak ApplicationObjectSupport
Catatan: Metode GetApplicationContext () yang disediakan oleh Abstrak Class ApplicationObjectSupport dapat dengan mudah mendapatkan instance ApplicationContext, dan kemudian mendapatkan kacang di wadah pegas. Ketika pegas diinisialisasi, objek ApplicationContext akan disuntikkan melalui metode SetApplicationContext (ApplicationContext Context) dari kelas abstrak.
Jenis Keempat: Diwarisi dari Kelas Abstrak WebApplicationObjectSupport
Catatan: Mirip dengan metode di atas, dapatkan instance WebApplicationContext dengan menelepon GetWebApplicationContext ();
Jenis Kelima: Menerapkan Antarmuka ApplicationContextAware
Deskripsi: Menerapkan metode SetApplicationContext (ApplicationContext Context) dari antarmuka ini dan simpan objek ApplicationContext. Ketika pegas diinisialisasi, objek ApplicationContext disuntikkan melalui metode ini.
Meskipun Spring menyediakan tiga metode terakhir untuk mengimplementasikan pewarisan atau implementasi kelas atau antarmuka yang sesuai di kelas biasa untuk mendapatkan objek ApplicationContext Spring, saat menggunakannya, Anda harus memperhatikan mewarisi atau mengimplementasikan kelas atau antarmuka abstrak ini. Atau objek ApplicationContext yang diperoleh akan menjadi nol.
Berikut ini menunjukkan cara mendapatkan kacang dalam wadah musim semi dengan mengimplementasikan ApplicationContextAware:
Pertama, sesuaikan kelas yang mengimplementasikan antarmuka ApplicationContextAware dan mengimplementasikan metode di dalamnya:
Paket com.ghj.tool; impor org.springframework.beans.beansException; impor org.springframework.context.applicationContext; impor org.springframework.context.applicationContextAware; Kelas publik springConfigTool menirapkan applicationContextAware {public class public classonfigTool null; private static springconfigtool springconfigtool = null; public static static springconfigTool init () {if (springconfigtool == null) {springconfigtool = new springconfigTool (); } return springconfigtool; } public void setApplicationContext (ApplicationContext ApplicationContext) melempar BeansException {ac = applicationContext; } objek statis yang disinkronkan publik getBean (string beanname) {return ac.getbean (beanname); }} Kedua, konfigurasinya di file applicationContext.xml:
Salin kode sebagai berikut: <bean id = "springconfigtool"/>
Akhirnya, Anda bisa mendapatkan kacang yang sesuai di wadah musim semi melalui kode berikut:
Salinan kode adalah sebagai berikut: springconfigtool.getbean ("beanid");
Perhatikan bahwa ketika server memulai inisialisasi wadah pegas, wadah pegas tidak dapat diperoleh melalui metode berikut:
impor org.springframework.web.context.contextLoader; impor org.springframework.web.context.webApplicationContext; WebApplicationContext wac = contextLoader.getCurrentWebApplicationContext (); wac.getbean (beanid);
Di atas adalah semua tentang artikel ini, saya harap ini akan membantu untuk pembelajaran semua orang.