use @autowired na classe base abstrata

Como eu sei,field injection não é recomendado. Deveria usarconstructor em vez de.

O que estou tentando fazer aqui é usar@Autowired no construtor da classe base e torne-o acessível para todas as subclasses. Em algumas subclasses, também preciso que alguns beans específicos sejam@Autowired de seus construtores. O código de demonstração é o seguinte:

Classe base:

public abstract class Base {

    protected final MyDemoService myDemoService;

    @Autowired
    public Base(MyDemoService myDemoService) {
        this.myDemoService = myDemoService;
    }
}

Classe (sub) herdada:

public class Sub extends Base {

    private final MySubService mySubService;

    @Autowired
    public Sub(MySubService mySubService) {
        this.mySubService = mySubService;
    }
} 

Isso me dará um erro 'sem construtor padrão'.
É semelhante à pergunta:pergunta e resposta semelhantes, mas não funciona aqui.

Mergulhei nisso por um tempo, encontrei este artigo sobredependency injection: leia mais

Eu estou pensando é oSetter Injection um caminho certo para a minha pergunta?

Injeção de incubadora:

public abstract class Base {

    protected MyDemoService myDemoService;

    @Autowired
    public void setMyDemoService(MyDemoService myDemoService) {
        this.myDemoService = myDemoService;
    }
}

Eu sou novo no Java Spring Boot e quero obter alguns conselhos de especialistas de vocês. Qualquer discussão será muito apreciada!

questionAnswers(4)

yourAnswerToTheQuestion