亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SpringUtil.java工具類有什么用?。?/h1>

SpringUtil.java工具類有什么用???

長風秋雁 2019-03-22 19:19:08
為什么要繼承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()方法來獲取這個實例了。

查看完整回答
1 反對 回復 2019-04-21
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

這就是個獲取Bean實例的工具類,也沒什么特別的含義。

Spring容器啟動時,自動把所有的ApplicationContextAware實現找出來,然后為其注入ApplicationContext屬性,使得SpringContextUtil就可以自由自在的根據名字獲取Bean實例了。

當你哪里需要手動獲取Bean實例時,就可以直接用SpringContextUtil類了啊。

如果你們的代碼里從來沒用過,那會不是是什么人一高興,從網上抄了這么一段丟到項目里了,也沒關心是干嘛用的?

(最后純屬揣測,如有錯誤見諒)


查看完整回答
反對 回復 2019-04-21
  • 2 回答
  • 0 關注
  • 2148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號