⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threadscope.java

📁 是关于struts+hibernate+spring开发宝典的源代码,希望对大家有帮助,
💻 JAVA
字号:
package cn.hxex.springcore.scope;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.config.Scope;

/**
 * 自定义的作用域对象
 */
public class ThreadScope implements Scope {

	// 保存所有Bean实例的容器
	static Map container = Collections.synchronizedMap( new HashMap() );
	
	/**
	 * 得到Bean的实例
	 */
	public Object get(String name, ObjectFactory factory) {
		
		Map beans = (Map)container.get( getThreadId() );
		if( beans==null ) {
			beans = new HashMap();
			container.put( getThreadId(), beans );
		}
		
		Object obj = beans.get( name );
		if( obj==null ) {
			obj = factory.getObject();
			beans.put( name, obj );
		}
		
		return obj;
	}

	/**
	 * 删除Bean的实例
	 */
	public Object remove(String name) {
		
		Map beans = (Map)container.get( getThreadId() );
		if( beans!=null ) {
			Object obj = beans.get( name );
			if( obj!=null ) {
				beans.remove( name );
				return obj;
			}
		}
		
		return null;
	}

	/**
	 * 得到当前进程的ID
	 */
	private Long getThreadId() {
		
		long id = Thread.currentThread().getId();
		return Long.valueOf( id );
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -