為什么要繼承ApplicationContextAware實現ApplicationContext的這些相關方法,感覺這些方法都在spring中有提供的啊,寫這個SpringUtil.java工具類有什么用?。吭诖a中也沒有看到別的地方有對這個工具類的引用??代碼如下:import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware; public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; //Spring應用上下文環境 public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContextUtil.applicationContext = applicationContext; } public static ApplicationContext getApplicationContext() { return applicationContext; } public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } public static <T> T getBean(Class<T> requiredType) { return applicationContext.getBean(requiredType); } public static <T> T getBean(String name, Class<T> requiredType) throws BeansException { return applicationContext.getBean(name, requiredType); } public static boolean containsBean(String name) { return applicationContext.containsBean(name); } public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return applicationContext.isSingleton(name); } @SuppressWarnings("rawtypes")public static Class getType(String name) throws NoSuchBeanDefinitionException { return applicationContext.getType(name); } public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { return applicationContext.getAliases(name); } }
2 回答

大話西游666
TA貢獻1817條經驗 獲得超14個贊
Spring 的重要作用是依賴注入。將bean的生成交給Spring處理。但是也往往會遇到一些類,這些類可能不需要實例化,里面全部是靜態方法;也可能自身獲取自身的實例…總之,這個類并沒有把自己交給Spring來生成。但是這個類又調用了Spring產生的實例。這個時候依賴注入可能是無法生效的~ 這個時候就需要采用SpringUtil的getBean()方法來獲取這個實例了。

楊__羊羊
TA貢獻1943條經驗 獲得超7個贊
這就是個獲取Bean
實例的工具類,也沒什么特別的含義。
Spring
容器啟動時,自動把所有的ApplicationContextAware
實現找出來,然后為其注入ApplicationContext
屬性,使得SpringContextUtil
就可以自由自在的根據名字獲取Bean
實例了。
當你哪里需要手動獲取Bean
實例時,就可以直接用SpringContextUtil
類了啊。
如果你們的代碼里從來沒用過,那會不是是什么人一高興,從網上抄了這么一段丟到項目里了,也沒關心是干嘛用的?
(最后純屬揣測,如有錯誤見諒)
添加回答
舉報
0/150
提交
取消