Created
April 20, 2020 09:33
-
-
Save wangshuai1992/f907b218d5cd6fbeb9c742cf3c7c3671 to your computer and use it in GitHub Desktop.
SpringUtil.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Component | |
public class SpringUtil implements ApplicationContextAware { | |
/** | |
* Spring应用上下文环境 | |
*/ | |
private static ApplicationContext applicationContext; | |
/** | |
* 获取对象 | |
* | |
* @param name | |
* @return Object 一个以所给名字注册的bean的实例 | |
* @throws BeansException | |
*/ | |
public static Object getBean(String name) { | |
return applicationContext.getBean(name); | |
} | |
/** | |
* 获取类型为requiredType的对象 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException) | |
* | |
* @param name | |
* bean注册名 | |
* @param requiredType | |
* 返回对象类型 | |
* @return Object 返回requiredType类型对象 | |
* @throws BeansException | |
*/ | |
public static <T> T getBean(String name, Class<T> requiredType) { | |
return applicationContext.getBean(name, requiredType); | |
} | |
/** | |
* 根据类型获取bean | |
* | |
* @param requiredType | |
* @param <T> | |
* @return | |
* @throws BeansException | |
*/ | |
public static <T> T getBean(Class<T> requiredType) { | |
return applicationContext.getBean(requiredType); | |
} | |
/** | |
* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true | |
* | |
* @param name | |
* @return boolean | |
*/ | |
public static boolean containsBean(String name) { | |
return applicationContext.containsBean(name); | |
} | |
/** | |
* 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) | |
* | |
* @param name | |
* @return boolean | |
* @throws NoSuchBeanDefinitionException | |
*/ | |
public static boolean isSingleton(String name) { | |
return applicationContext.isSingleton(name); | |
} | |
/** | |
* @param name | |
* @return Class 注册对象的类型 | |
* @throws NoSuchBeanDefinitionException | |
*/ | |
@SuppressWarnings("rawtypes") | |
public static Class getType(String name) { | |
return applicationContext.getType(name); | |
} | |
/** | |
* 如果给定的bean名字在bean定义中有别名,则返回这些别名 | |
* | |
* @param name | |
* @return | |
* @throws NoSuchBeanDefinitionException | |
*/ | |
public static String[] getAliases(String name) { | |
return applicationContext.getAliases(name); | |
} | |
@Override | |
public void setApplicationContext(ApplicationContext applicationContext) { | |
SpringUtil.applicationContext = applicationContext; | |
} | |
/** | |
* 获取 {@link #applicationContext} | |
* | |
* @return 返回 {@link #applicationContext} | |
*/ | |
public static ApplicationContext getApplicationContext() { | |
return applicationContext; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment