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

Method Injection en Spring

Agosto 12th, 2004 - [Enlace local]

Lo que se hace hasta ahora para obtener un bean prototipo (no singleton) en Spring, es implementar la interface BeanFactoryAware y luego utilizar getBean("NombreDelBean") del contenedor para obtener la instancia.
Esto no es muy deseable, ya que nos "pega" demasiado a Spring. Nuestros beans "conocen" a Spring.

La nueva posibilidad de Spring 1.1, Method Injection le permite al contenedor sobreescribir un método abtracto o concreto de los beans que administra, para devolver el resultado de una búsqueda de otro bean del contenedor.

Tomemos el ejemplo de la documentación de Spring. Si tenemos un clase cliente conteniendo el método a ser inyectado de esta forma:

protected abstract SingleShotHelper createSingleShotHelper();

podemos escribir el siguiente lookup-method tag en la configuración de Spring para sobreescribir su comportamiento y que nos devuelva la instancia que necesitemos:



<bean id="singleShotHelper" class="..." singleton="false"/>

<bean id="myBean" class="...">
<lookup-method name="createSingleShotHelper" bean="singleShotHelper"/>
<property>
...
</property>
</bean>
Asi, el bean myBean puede ahora llamar a su propio método createSingleShotHelper y obtener una nueva instancia del bean singleShotHelper.

Con esto desacoplan mas nuestras clases de Spring y se simplifican aún mas las pruebas unitarias.

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