WebAppUtil.getService() 得到同一对象???

08-05-11 ttxyzr

《JdonFramework使用开发指南》讲到“getService方法每次返回的一个新的服务实例对象,相当于new一对象。如果对象池拦截器被配置,那么...”

实际测试如下:

test.xml
<pojoService name="testService" class="com.yourcompany.struts.TestServicePOJO1"/>

index.jsp
TestService test = (TestService)WebAppUtil.getService("testService", request);
TestService test1 = (TestService)WebAppUtil.getService("testService", request);

TestService test2 = (TestService)WebAppUtil.getComponentInstance("testService", request);

out.println(test == test1);
out.println(test == test2);
out.println(test1 == test2);

结果输出:
true false false

====================================================
1. test == test1为true做何解?
2. WebAppUtil.getService()与WebAppUtil.getComponentInstance()连续调用后使得com.yourcompany.struts.TestServicePOJO1不在是单例?

ttxyzr
2008-05-11 12:50

有人说下没?

banq
2008-05-13 08:52

如果用对象池还是获得上次同一个对象,这是因为你每次只有一个请求,POOL就分配上次用过的那个对象,最好使用多个并发请求测试。