Spring permite hacer inyección en las propiedades de los beans definidos dentro del Spring Context, pero que tal si quisiéramos inyectar un método ? para esto Spring también provee dos maneras de hacer la inyección de métodos o method inyection el cual vamos a poner un ejemplo de cómo funciona en ambos casos . Primero veremos el primer method llamado reemplaza miento de método o method replacement (mas adelante posteare la otra forma), Supongamos que tenemos esta clase:
package com.blogspot.snakepitit.beans
public class CajaMagicaImpl implements ICajaMagica {
private String getContenido() {
return “Este es el contenido de la caja de CajaMagicaImpl”;
}
}
En el application context deberíamos definir este bean de la siguiente manera
<bean id="cajita" class="com.blogspot.snakepitit.beans.CajaMagicaImpl">
<replaced-method name="getContenido" target="claseReemplazadora">
</bean>
<bean id="claseReemplazadora" class="com.blogspot.snakepitit.replacers.MiClaseReemplazadora">
Ya con este le decimos que el método getContenido se lo va a dar miClaseReemplazadora y no lo va a tomar desde CajaMagicaImpl, solamente nos faltaría definir miClaseReemplazadora para que quede listo, para que una clase pueda reemplazar un método debe implementar una interfaz de Spring MethodReplacer e implementar el método reimplement de la siguiente manera
package com.blogspot.snakepitit.replacers
public class MiClaseReemplazadora implements MethodReplacer {
public Object reimplement(Object target, Method method, Object[] args) {
return “Este es el contenido de la caja de MiClaseReemplazadora”;
}
}
Solamente con implementar MethodReplacer y definir el replaced-method en el bean que queremos que se inyecte el método estaría funcionando, esperen que dejen sus comentarios a ver que problemas surguieron, para la proxima voy a tratar de explicar el segundo metodo de inyeccion de metodos (getters method)
martes, 27 de enero de 2009
Suscribirse a:
Entradas (Atom)