La inyección de dependencias q actua generando los objetos cuando se arranca la aplicación y luego los inyecta en los demás objetos que los necesiten a través de métodos set o bien a través del constructor, pero estos objetos se instancian una vez, se guardan en una factoría y se comparten por todos los usuarios (al menos en el caso de Spring) y nos evitamos tener que andar extendiendo clases o tumbar el servidor de la BD.
Spring soporta inyección de dependencias a través del constructor y a través de métodos set pero se aconseja hacerlo a través de métodos set.
En conclusion :- Se utiliza para no tener que crear el objecto siempre cada que creemos el servicio.
- El mismo objeto creado puede ser usado por varios servicios.
public class Clase {
private Clase2 atributo1;
public Clase(){
}
public void setAtributo1(Clase2 atributo1){
this.atributo1 = atributo1;
}
}
public class Clase2 {—IMPLEMENTACIÓN—}
Declaramos nuestros beans en el contexto de la aplicación< id="atributo1" class="org.mipaquete.bean.Clase2">< /bean>
< id="atributo" class="org.mipaquete.bean.Clase">
< name=" atributo1" ref="atributo1">
< /bean>
El atributo refhace referencia al id del bean creado así que hay que tener un poco de cuidado con los ids.