commonsのオブジェクトプール

public class Model {
	public void m1(){
		System.out.print("hoge");
	}
}

public class MyObjectFactory extends BasePoolableObjectFactory {

	@Override
	public Object makeObject() throws Exception {
		return new Model();
	}

}

	public static void main(String[] args) {
		PoolableObjectFactory objectFactory = new MyObjectFactory();
		ObjectPoolFactory poolFactory = new StackObjectPoolFactory(objectFactory);
		ObjectPool pool = poolFactory.createPool();
		Model pooled;
		try {
			pooled = (Model)pool.borrowObject();
			pooled.m1();
			pool.returnObject(pooled);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

実行結果

hoge