ホームページ  >  に質問  >  本文

mybatis - SpringUtil.java工具类有什么用啊?

为什么要继承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中文网2741日前332

全員に返信(1)返信します

  • 怪我咯

    怪我咯2017-04-18 09:27:56

    これはBeanインスタンスを取得するためのツールクラスであり、特別な意味はありません。

    Spring コンテナが起動すると、すべての ApplicationContextAware 実装が自動的に検索され、それらに ApplicationContext 属性が注入されるため、SpringContextUtil は名前で Bean インスタンスを自由に取得できます。

    Bean インスタンスを手動で取得する必要がある場合は、SpringContextUtil クラスを直接使用できます。

    それがあなたのコードで一度も使用されたことがない場合、誰かがインターネットからこの段落をコピーして、それが何に使用されたかを気にせずにプロジェクトに放り込んだことにとても満足している可能性はありますか?

    (最後のものは完全に推測です。間違いがあればごめんなさい)

    返事
    0
  • キャンセル返事