Se explica brevemente la inyeccion de dependencias en Spring Framework
//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.