Si queremos utilizar Spring Framework para abstraer su utilización, solo tenemos que agregar los beans necesarios a nuestro archivo de configuración para ofrecer capacidades de pooling a cualquier objeto.
Primero definimos el bean como cualquier otro, teniendo en cuenta que el nombre que le pongamos no será el nombre final a utilizar, y que no sea singleton:
<bean id="myServiceTarget" class="com.xyz.ServiceImpl" singleton="false">Acto seguido definimos nuestro pool, mediante la utilización de CommonsPoolTargetSource, especificando nuestro bean target, y la cantidad de instancias permitidas:
<property name="..."><value>...</value></property>
<property name="..."><ref bean="..."/></property>
<bean>
<bean id="myServicePoolTargetSource"Finalmente definimos nuestro bean final, mediante un proxy AOP:
class="org.springframework.aop.target.CommonsPoolTargetSource">
<property name="targetBeanName"><value>myServiceTarget</value></property>
<property name="maxSize"><value>25</value></property>
</bean>
<bean id="myService"Ahora podemos utilizar el bean myService y ante cada llamada a uno de sus métodos, Spring obtendrá una instancia del pool, ejecutará el codigo de nuestro método y devolverá la instancia al pool, todo mediante "AOP magic". ¿Sencillo, no?
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>com.xyz.Service</value>
</property>
<property name="targetSource">
<ref local="myServicePoolTargetSource"/>
</property>
</bean>
1 comentario:
Gracias por el excelente tutorial, encontraba mucha documentacion en internet, pero ningun ejemplo conciso de como configurar el pooling
Publicar un comentario