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

为什么要继承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讲师

reply all(1)
刘奇

This is just a tool class for obtaining Bean instances, and it has no special meaning.

When the Spring container starts, it automatically finds all the ApplicationContextAware implementations, and then injects the ApplicationContext attribute into them, making SpringContextUtilcode> you can freely obtain the Spring容器启动时,自动把所有的ApplicationContextAware实现找出来,然后为其注入ApplicationContext属性,使得SpringContextUtil就可以自由自在的根据名字获取Bean instance based on the name.

When you need to manually obtain the Bean实例时,就可以直接用SpringContextUtil instance, you can directly use the SpringContextUtil class.

If you have never used it in your code, is it possible that someone was so happy that they copied this paragraph from the Internet and threw it into the project without caring about what it was used for?

(The last one is purely speculation, sorry if there are any mistakes)

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template