es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Autowirea una interfaz que extienda otra interfaz.

@componente
interface A extends RootInterface{}

@Configuration
interface RootInterface{
public String hello();
}

@Service
class SomeClass implements RootInterface{}

class RandomClass{
@Autowired
A a;
}

implementar un flujo como este lanza un error

Se requiere un bean de tipo ‘com.package.A’ que no se pudo encontrar en el campo a en com.package.RandomClass.

El punto de inyección tiene las siguientes anotaciones:
– @org.springframework.beans.factory.annotation.Autowired(required=true)

Acción:

Considere definir un bean de tipo ‘com.package.A’ en su configuración.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error indica que la clase RandomClass requiere un bean de tipo A, pero Spring no puede encontrarlo. Una posible solución sería anotar la interfaz A con @Component, de modo que Spring pueda registrarla como un bean:

    @Component
    public interface A extends RootInterface{}
    

    Alternativamente, también podríamos anotar la clase SomeClass con @Component, de modo que Spring pueda registrarla como un bean de tipo RootInterface:

    @Service
    @Component
    public class SomeClass implements RootInterface{}
    

    Esto permitiría a Spring inyectar una instancia de SomeClass en el campo a de RandomClass, ya que sería un bean del tipo requerido.

Comments are closed.