📄 singletonbeancontainer.java.svn-base
字号:
package com.easyjf.container.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import com.easyjf.util.Assert;
import com.easyjf.web.exception.FrameworkException;
public class SingletonBeanContainer {
private Map beans=new TreeMap();
public boolean containsSingletonBean(String name) {
return beans.containsKey(name);
}
public Object getSingletionBean(String name) {
return beans.get(name);
}
public Object getSingletionBean(Class type) {
Object ret=null;
List list=getBeansByType(type);
if(list!=null && list.size()>0)
{
if(list.size()>1)
{
throw new FrameworkException("容器中有多个同类型的Bean,无法确定返回哪一个!");
}
ret=list.get(0);
}
return ret;
}
public List getBeansByType(Class type)
{
java.util.Iterator it=beans.values().iterator();
List ret=null;
while(it.hasNext())
{
Object obj=it.next();
if(type.isAssignableFrom(obj.getClass()))
{
if(ret==null)ret=new ArrayList();
ret.add(obj);
}
}
return ret;
}
public void register(String name, Object bean)
{
Assert.hasText(name);
Assert.notNull(bean);
synchronized(this.beans){
if(!containsSingletonBean(name)) //throw new com.easyjf.web.exception.FrameworkException("指定的Bean已经存在!"+name);
beans.put(name, bean);
}
}
public void removeBean(String name)
{
beans.remove(name);
}
public void removeBean(Class type)
{
Object bean=getSingletionBean(type);
beans.values().remove(bean);
}
public void removeAll()
{
beans.clear();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -