我正在使用 apache commons pool2 配置对象池。似乎只有在尝试借用对象时才会创建池中的对象。我希望预先创建对象,因此当需要借用第一个对象时,我准备好了最少数量的对象。
我的弹簧配置看起来像这样:
<bean id="webSocketConnectionPool" class="org.apache.commons.pool2.impl.GenericObjectPool">
<constructor-arg ref="webSocketConnectionFactory"/>
<constructor-arg ref="webSocketConnectionPoolConfig"/>
</bean>
<bean id="webSocketConnectionFactory" class="com.blah.WebSocketConnectionFactory" />
<bean id="webSocketConnectionPoolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig">
<property name="maxIdle" value="300"/>
<property name="maxTotal" value="1000"/>
<property name="minIdle" value="10"/>
</bean>
我可以看到在应用程序启动时创建了池,但 minIdle 设置似乎并没有导致我想要的行为。工厂上的 create() 方法仅在借用第一个对象时调用。
任何提示将不胜感激。
谢谢