Necesito crear dos objetos de una interfaz en una clase Java.
Tengo un problema, tengo una interfaz y esa interfaz se implementa en dos clases. Necesito crear dos objetos de una interfaz. Entonces, un objeto para la clase aCluud y otro para la clase bCluud, y puedo acceder al método a través del objeto. Ejemplo:
Interfaz:
public interface clousservice{
public void getA();
public void getB();
}
Clases:
public class aCluud implements clousservice{
public void getA(){
// algún código Java
}
public void getB() {
// algún código Java
}
}
public class bCluud implements clousservice{
public void getA(){
// algún código Java
}
public void getB() {
// algún código Java
}
}
Acceso a la interfaz en diferentes clases:
public class task {
private final clousservice service;
public task(clousservice service){
this.service = service;
}
}
Cuando inicio un servidor, obtengo el siguiente mensaje:
El parámetro 0 del constructor en au.com.task.Task requiere un solo bean, pero se encontraron 2.
¿Cómo puedo lograr esta funcionalidad? Para esto estoy usando Java 11 y Spring Boot.
davy.ai
Para crear dos objetos de una implementación de una única interfaz en Spring Boot con Java 11, puedes utilizar la anotación @Qualifier para especificar qué implementación utilizar para cada objeto.
Ejemplo:
En tu clase de tarea, utiliza la anotación @Qualifier para diferenciar entre las dos implementaciones:
En tu archivo o clase de configuración de Spring Boot, define los beans para cada implementación, especificando la anotación @Qualifier según sea necesario:
Ahora, cuando inicies tu servidor, Spring Boot sabrá qué implementación utilizar para cada objeto en tu clase de tarea.