Noticias Weblogs Foros Wiki Código
Sponsors:

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

PlanetaCódigo en inglés

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

niko's mini factory

Configuración de pooling en Spring

Agosto 31st, 2004 - [Enlace local]

Si bien las capacidades que nos ofrece EJB para pools de instancias son muy utilizadas, de ningún modo es la única forma de llevar a cabo esta tarea. Apache Commons Pool por ejemplo, es una biblioteca muy utilizada para el mismo fin.
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">

<property name="..."><value>...</value></property>
<property name="..."><ref bean="..."/></property>
<bean>
Acto seguido definimos nuestro pool, mediante la utilización de CommonsPoolTargetSource, especificando nuestro bean target, y la cantidad de instancias permitidas:
<bean id="myServicePoolTargetSource"

class="org.springframework.aop.target.CommonsPoolTargetSource">
<property name="targetBeanName"><value>myServiceTarget</value></property>
<property name="maxSize"><value>25</value></property>
</bean>
Finalmente definimos nuestro bean final, mediante un proxy AOP:
<bean id="myService"

class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>com.xyz.Service</value>
</property>
<property name="targetSource">
<ref local="myServicePoolTargetSource"/>
</property>
</bean>
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?

» Leer más, comentarios, etc...