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.
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:
Alternativamente, también podríamos anotar la clase SomeClass con @Component, de modo que Spring pueda registrarla como un bean de tipo 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.