Pooling Bean com Spring

brown-beansNestes dias comecei um novo projeto que faz integração com um solução antiga de terceiro usando Socket puro, através de um protocolo proprietário. Sendo um recurso de alto custo e demorado, eu não poderia cair no smell de abrir conexão socket por requisição. Como sempre meu camisa 10 me salvou! O Spring framework tem um serviço de Pooling no qual você pode habilitar um pool de qualquer bean e consumir pela demanda da sua solução:

<bean id=”targetBean” class=”my.compagny.TargetBean” scope=”prototype”/>

<bean id=”poolTargetBean” class=”org.springframework.aop.target.CommonsPoolTargetSource”>
  <property name=”targetBeanName” value=”targetBean” />
  <property name=”maxSize” value=”10″/>
  <property name=”maxIdle” value=”10″ />
  <property name=”minIdle” value=”5″ />
</bean>

Para todos os detalhes veja a documentação oficial e um artigo de complemento:

“Amo o SENHOR, porque ele ouve a minha voz e as minhas súplicas. Porque inclinou para mim os seus ouvidos, invocá-lo-ei enquanto eu viver.” Salmos 116:1-2