Spring Ioc容器的簡單實現

public class IoCContainer {
    private Map<String, Object> beans = new ConcurrentHashMap<String, Object>();

    public Object getBean(String bean){
        return beans.get(bean);
    }

    public void setBean(Class<?> clazz, String beanId, String... paramBeanId){
        Object[] paramValues = new Object[paramBeanId.length];
        for(int i=0; i < paramBeanId.length; i++){
            paramValues[i] = paramBeanId[i];
        }

        for(int i=0; i < paramValues.length; i++){
            Object bean = null;
            for(Constructor<?> constructor : clazz.getConstructors()){
                try {
                    bean = constructor.newInstance(paramValues);
                } catch (InstantiationException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                } catch (InvocationTargetException e) {
                    e.printStackTrace();
                }
            }
            if(bean == null){
                throw new RuntimeException("找不到合適的構造方法實例化bean");
            }
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章