1. ContextLoader disediakan oleh Spring
WebApplicationContext wac = contextLoader.getCurrentWebApplicationContext (); wac.getbean (beanid);
Metode ini tidak bergantung pada servlet dan tidak memerlukan injeksi. Namun, perlu dicatat bahwa ketika server dimulai dan wadah pegas diinisialisasi, wadah pegas tidak dapat diperoleh melalui metode ini
2. Menerapkan antarmuka ApplicationContextAware
Tentukan kelas alat
kelas publik springcontextutil mengimplementasikan applicationContextAware {private static applicationContext applicationContext; //Spring application context environment/** * Implement the callback method of the ApplicationContextAware interface and set the context environment* @param applicationContext * @throws BeansException */ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContextUtil.applicationContext = applicationContext; } / ** * @return ApplicationContext * / public staticcontext getAppLicationContext () {return applicationContext; } / *** Dapatkan objek* @param nama* @return objek Sebuah instance dari kacang yang terdaftar dengan nama yang diberikan* @throws BeansException* / public static objek getBean (nama string) melempar BeansException {return applicationContext.getBean (name); } / ** * Dapatkan objek jenis yang diperlukan Type * Jika kacang tidak dapat dikonversi berdasarkan jenis, pengecualian yang sesuai akan dilemparkan (beannotofrequiredTypeException) * @param nama pendaftaran name * @param nameeancceptypeon * @return objek yang diperlukan objek yang diperlukan * @throws beansception * {return applicationContext.getBean (name, wajib); } / ** * Jika beanfactory berisi definisi kacang yang cocok dengan nama yang diberikan, return true * @param nama * @return boolean * / public static boolean containsbean (nama string) {return applicationContext.containsbean (name); } /*** Tentukan apakah definisi kacang yang terdaftar dengan nama yang diberikan adalah singleton atau prototipe. * If the bean definition corresponding to the given name is not found, an exception will be thrown (NoSuchBeanDefinitionException) * @param name * @return boolean * @throws NoSuchBeanDefinitionException */ public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return applicationContext.isSingleton(name); } / ** * @param nama * @return kelas Jenis objek terdaftar * @throws nosuchbeandefinitionException * / public static class getType (nama string) melempar nosuchbeandefinitionException {return applicationContext.gettype (name); } / ** * Jika nama kacang yang diberikan memiliki alias dalam definisi kacang, alias ini akan dikembalikan * @param nama * @return * @throws nosuchbeandefinitionException * / public static string [] getaliases (name string) nosuchbeandefinitionEcception {return applicationcontext.metgetgetget (return get. }}3. Konfigurasikan kacang
<!-SpringContextUtil Dapatkan Bean melalui kode-> <bean id = "springcontextutil"/>
Meringkaskan
Di atas adalah beberapa cara musim semi mendapat kacang dalam kode. Saya berharap konten artikel ini akan membantu untuk belajar atau bekerja semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi.