mybatis - SpringUtil.java工具类有什么用啊?
PHP中文网
PHP中文网 2017-04-18 09:25:56
0
1
360

为什么要继承ApplicationContextAware实现ApplicationContext的这些相关方法,感觉这些方法都在spring中有提供的啊,写这个SpringUtil.java工具类有什么用啊?在代码中也没有看到别的地方有对这个工具类的引用??
代码如下:

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);  
   }  
 }  
PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(1)
刘奇

這就是一個取得Bean實例的工具類,也沒什麼特別的意思。

Spring容器啟動時,自動把所有的ApplicationContextAware實作找出來,然後為其註入ApplicationContext屬性,使得SpringContextUtil code>就可以自由自在的根據名字取得Spring容器启动时,自动把所有的ApplicationContextAware实现找出来,然后为其注入ApplicationContext属性,使得SpringContextUtil就可以自由自在的根据名字获取Bean實例了。

當你哪裡需要手動取得Bean实例时,就可以直接用SpringContextUtil實例時,就可以直接用SpringContextUtil類別了啊。

如果你們的程式碼裡從來沒用過,那會不是是什麼人一高興,從網路上抄了這麼一段丟到專案裡了,也沒關心是乾嘛用的?

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板