/**
* 工具类 - Spring
* 获取spring框架的application对象,用于手动(非IOC)获取spring bean
* @author
*
*/
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringUtil.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 根据Bean名称获取实例
*
* @param beanName Bean注册名称
* @return bean实例
* @throws BeansException
*/
public static Object getBean(String beanName) throws BeansException {
return applicationContext.getBean(beanName);
}
/**
* 根据class获取实例
* @param requiredType
* @param <T>
* @return
*/
public static <T> T getBean(Class<T> requiredType) {
return applicationContext.getBean(requiredType);
}
public static <T> T getIService(String beanName){
return (T)getBean(beanName);
}
}