這個其實沒怎么仔細研究,不過好像也挺簡單的,下面是一個簡單的例子。(可能還有其他更簡單的用法,等我看完源代碼再說)
1。自己實現一下
PoolableObjectFactory。主要是實現makeObject方法,生成并返回一個自己想要的類實例。如果想要實現可重用也很簡單,加一個setObject的方法,然后在makeObject中使用反射機制生成類的實例。package?com.pool;
import?org.apache.commons.pool.PoolableObjectFactory;
import?com.domain.User;
public?class?MyObjectFactory?implements?PoolableObjectFactory?{
????private?int?id;
????public?MyObjectFactory()?{
????????super();
????}
????public?Object?makeObject()?throws?Exception?{
????????User?user=new?User();
????????user.setId(id);
????????user.setName("name"+id);
????????id++;
????????return?user;
????}
????public?void?destroyObject(Object?arg0)?throws?Exception?{
????????//?TODO?Auto-generated?method?stub
????}
????public?boolean?validateObject(Object?arg0)?{
????????//?TODO?Auto-generated?method?stub
????????return?true;
????}
????public?void?activateObject(Object?arg0)?throws?Exception?{
????????//?TODO?Auto-generated?method?stub
????}
????public?void?passivateObject(Object?arg0)?throws?Exception?{
????????//?TODO?Auto-generated?method?stub
????}
}
然后通過如下代碼進行使用:
????????GenericObjectPool?pool?=?new?GenericObjectPool(new?MyObjectFactory());
????????pool.setMaxActive(5);//默認是8
????????????????
????????????????pool.borrowObject();//取出object
????????????????pool.returnObject(yourobject);//把取出的object還給對象池
posted on 2006-04-12 13:08
OO 閱讀(1275)
評論(0) 編輯 收藏 所屬分類:
框架、工具的使用