Common-pool源码编译——小例子
2016-05-05 18:03
288 查看
最近在研究apache里面所有的common的源代码,并且在源码基础上编写测试的例子
源码的下载地址 http://download.csdn.net/detail/m47838704/9511153
UserInfo.java
UserFactory.java
TestPool.java
源码的下载地址 http://download.csdn.net/detail/m47838704/9511153
UserInfo.java
package mh.test; public class UserInfo { private String name; private int age; public UserInfo() { // TODO Auto-generated constructor stub } public UserInfo(String name, int age) { // TODO Auto-generated constructor stub this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { // TODO Auto-generated method stub return "用户名:"+this.name+",年龄:"+this.age; } }
UserFactory.java
package mh.test; import org.apache.commons.pool2.PooledObject; import org.apache.commons.pool2.PooledObjectFactory; import org.apache.commons.pool2.impl.DefaultPooledObject; public class UserFactory implements PooledObjectFactory<UserInfo>{ @Override public PooledObject<UserInfo> makeObject() throws Exception { // TODO Auto-generated method stub System.out.println("创建一个新的对象"); return new DefaultPooledObject<UserInfo>(new UserInfo()); } @Override public void destroyObject(PooledObject<UserInfo> p) throws Exception { // TODO Auto-generated method stub UserInfo user = p.getObject(); System.out.println("销毁对象"+user.toString()); user = null; } @Override public boolean validateObject(PooledObject<UserInfo> p) { // TODO Auto-generated method stub if(p.getObject() instanceof UserInfo){ System.out.println("是一个合法的对象"); return true; } System.out.println("是一个非法的对象"); return false; } @Override public void activateObject(PooledObject<UserInfo> p) throws Exception { // TODO Auto-generated method stub System.out.println("重新初始化对象"); } @Override public void passivateObject(PooledObject<UserInfo> p) throws Exception { // TODO Auto-generated method stub UserInfo user = p.getObject(); System.out.println("对象已经被归还:"+user.toString()); } }
TestPool.java
package mh.test; import org.apache.commons.pool2.impl.GenericObjectPool; public class TestPool { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub GenericObjectPool<UserInfo> pool = new GenericObjectPool<UserInfo>(new UserFactory()); try { UserInfo user = pool.borrowObject(); user.setAge(10); user.setName("mh"); System.out.println(user.toString()); pool.returnObject(user); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- 覆盖最多的直线上的点
- 键盘事件的监听-控制飞机移动
- 插入排序算法!
- 转:http range 用法与说明
- c# 获取方法所在的命名空间 类名 方法名
- Hive UDF初探
- poj3237Tree 【树链剖分+线段树】
- 对象指针
- Java中DatabaseMetaData 元数据信息
- Design各控件的搭配使用
- poj 3261
- jQuery可调整表和列宽插件-colResizable
- jQuery可调整表和列宽插件-colResizable
- jQuery可调整表和列宽插件-colResizable
- java 通过httpClient调用后端逻辑或者下载附件
- iOS开发 ☞ UIApplication 生命周期
- 西普实验吧-ctf-web-2
- 士兵杀敌 三 --- O( 1 ) 的时间复杂度 .
- 写入到文件
- 解决shell命令行只显示-bash-4.1#不显示用户和路径方法