¿Es posible desde Spring inyectar el resultado de llamar a un método en un ref bean?¿Es posible desde Spring inyectar el resultado de llamar a un método en un ref bean?
Estoy tratando de refactorizar un código cortado/pegado de dos proyectos separados en una clase común. En uno de los proyectos, el código vive en una clase a la que llamaré "MyClient" que está siendo instanciada desde Spring. Se inyecta con otra clase de instancia de primavera "MyRegistry", luego la clase MyClient usa esa clase para buscar un punto final. Todo lo que realmente necesito es la cadena de punto final en mi clase refactorizada, que se puede inicializar a través de un Setter. Realmente no puedo tener una dependencia en MyRegistry de MyClient en el código modificado.
Por lo tanto, mi pregunta es esta ... ¿hay alguna manera de que pueda inyectar la cadena de punto final de la primavera que se buscó en la clase MyRegistry. Por lo tanto, tengo actualmente:
<bean id="registryService" class="foo.MyRegistry">
...properties set etc...
</bean>
<bean id="MyClient" class="foo.MyClient">
<property name="registry" ref="registryService"/>
</bean>
Pero me gustaría tener (y sé que esto es la sintaxis de la primavera imaginaria)
<bean id="MyClient" class="foo.MyClient">
<property name="endPoint" value="registryService.getEndPoint('bar')"/>
</bean>
donde MyRegistry tendrá un método getEndPoint (Stirng endPointName)
Espero que tenga sentido desde el punto de vista de lo que estoy tratando de lograr. ¡Por favor avíseme si algo como esto es posible en Spring!
Muy genial, y un poco tortuoso. Estamos usando Spring 2.5.6 aquí, así que intentaré utilizar esta técnica. Veo lo que estás haciendo ahora ... tratas el método getEndPoint() como un método de fábrica en registryService - la clase "construida en fábrica" es una cadena simple que representa el endPoint. ¡Muy genial! ¡Espero que esto funcione! –
"Devious" de hecho, ¿cómo te atreves :) Esto es exactamente cómo 'factory-bean' y' factory-method' se supone que se utilizarán, te lo haré saber :) – skaffman