jairo-serratoo
10/4/2018 - 4:56 PM

Inyeccion de Dependencias

Se explica brevemente la inyeccion de dependencias en Spring Framework

Inyeccion de Dependencias en Spring

  • Spring crea todos los objetos al arrancar la aplicacion y los mete dentro de su container.
  • Al hacer uso de nuestros objetos, solo basta con invocar a la inyeccion de dependencias
    • A estos objetos es a lo que se le llama BEANS
  • Al arrancar el servidor una de las tareas que realiza es escanear el proyecto y todas las clases Java que tengan @Anotacion a nivel de clase, las metera en su contenedor y pasaran a ser BEANS de la aplicacion. Las principales anotaciones son las siguientes:
    • @Component: Es el padre de todas las anotaciones.
      • @Controller: Es un component con funcionalidades para la capa de presentacion
      • @Service: Es un component con funcionalidades para la capa de servicios.
      • @Repository: Es un component con funcionalidades para la capa de acceso a datos. Ejemplo:
//Interfaz
public interface ControlService{
  controlSomething();
}

Implementamos la interfaz:

@Service("miservicio") //Indicamos a Spring que meta un objeto llamado "mi servicio" a su container

public class ControlServiceImpl implements ControlService{
  @Override
  controlSomething(){
    
  }
}

Ahora hacemos uso de esa inyeccion de dependencias:

@Autowired //Esto le indica a Spring que lo que acabamos de declarar, se encuentra en su container

@Qualifier("miservicio") // Aqui indicamos el nombre del BEAN que queremos obtener, Sprng se encargara de inyectarlo y que lo podamos usar sin necesidad del operador NEW

private ControlService cs;
cs.controlSomething();

Una de las grandes ventajas de usar inyeccion de dependencias es que todas las clases que implementen la interfaz pueden mandar un objeto a traves de la anotacion al container de Spring, de esta manera yo puedo ir a buscar ese BEAN en el @Qualifier sin necesidad de crear un nuevo objeto.