📄 singletonbeancontainer.java
字号:
package com.easyjf.container.impl;
import java.util.Collection;
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) {
java.util.Iterator it=beans.values().iterator();
Object ret=null;
int i=0;
while(it.hasNext())
{
Object obj=it.next();
if(obj.getClass()==type)
{
ret=obj;
i++;
if(i>1)throw new FrameworkException("容器中有多个同类型的Bean,无法确定返回哪一个!");
}
}
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 + -