찾다

 >  Q&A  >  본문

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中文网2810일 전362

모든 응답(1)나는 대답할 것이다

  • 怪我咯

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

    Bean 인스턴스를 얻기 위한 툴 클래스이며 특별한 의미는 없습니다.

    Spring 컨테이너가 시작되면 자동으로 모든 ApplicationContextAware 구현을 찾아 ApplicationContext 속성을 ​​삽입하므로 SpringContextUtil는 해당 이름을 기준으로 Bean 인스턴스를 자유롭게 얻을 수 있습니다.

    Bean 인스턴스를 수동으로 가져와야 하는 경우 SpringContextUtil 클래스를 직접 사용할 수 있습니다.

    귀하의 코드에서 한 번도 사용된 적이 없다면 누군가가 너무 기뻐서 이 단락을 인터넷에서 복사하여 그것이 무엇인지 신경쓰지 않고 프로젝트에 던졌을 가능성이 있습니까?

    (마지막은 순전히 추측입니다. 틀린 부분이 있다면 죄송합니다)

    회신하다
    0
  • 취소회신하다