這個(gè)其實(shí)沒(méi)怎么仔細(xì)研究,不過(guò)好像也挺簡(jiǎn)單的,下面是一個(gè)簡(jiǎn)單的例子。(可能還有其他更簡(jiǎn)單的用法,等我看完源代碼再說(shuō))
1。自己實(shí)現(xiàn)一下
PoolableObjectFactory。主要是實(shí)現(xiàn)makeObject方法,生成并返回一個(gè)自己想要的類(lèi)實(shí)例。如果想要實(shí)現(xiàn)可重用也很簡(jiǎn)單,加一個(gè)setObject的方法,然后在makeObject中使用反射機(jī)制生成類(lèi)的實(shí)例。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
????}
}
然后通過(guò)如下代碼進(jìn)行使用:
????????GenericObjectPool?pool?=?new?GenericObjectPool(new?MyObjectFactory());
????????pool.setMaxActive(5);//默認(rèn)是8
????????????????
????????????????pool.borrowObject();//取出object
????????????????pool.returnObject(yourobject);//把取出的object還給對(duì)象池
posted on 2006-04-12 13:08
OO 閱讀(1275)
評(píng)論(0) 編輯 收藏 所屬分類(lèi):
框架、工具的使用