package org.framework.helper;
//~--- non-JDK imports --------------------------------------------------------
import org.framework.util.ReflectionUtil;
//~--- JDK imports ------------------------------------------------------------
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* Bean助手类
* Created by lizhaoz on 2015/12/16.
*/
public class BeanHelper {
// 存放Bean类和Bean实例的映射
private static final Map<Class<?>, Object> BEAN_MAP = new HashMap<Class<?>, Object>();
static {
Set<Class<?>> beanClassSet = ClassHelper.getBeanClassSet();
for (Class<?> beanClass : beanClassSet) {
Object obj = ReflectionUtil.newInstance(beanClass);
BEAN_MAP.put(beanClass, obj);
}
}
/**
* 获取Bean映射
* author:Lizhao
* Date:15/12/16
* version:1.0
*
* @return
*/
public static Map<Class<?>, Object> getBeanMap() {
return BEAN_MAP;
}
/**
* 得到该Bean的实例
* author:Lizhao
* Date:15/12/16
* version:1.0
*
* @param cls
* @param <T>
*
* @return
*/
public static <T> T getBean(Class<T> cls) {
if (!BEAN_MAP.containsKey(cls)) {
throw new RuntimeException("can not get bean by class: " + cls);
}
return (T) BEAN_MAP.get(cls);
}
/**
* 设置Bean实例,一般来说 对于代理对象的实例 设置就用这个方法
* author:Lizhao
* Date:15/12/20
* version:1.0
*
* @param cls
* @param obj
*/
public static void setBean(Class<?> cls, Object obj) {
BEAN_MAP.put(cls, obj);
}
}
//~ Formatted by Jindent --- http://www.jindent.com