Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Autowired

Atualmente eu sou desenvolvedor .NET e já estou bem avançado, decidi estudar Spring para aumentar meu conhecimento e ter habilidades nessa duas grandes tecnologias.

No .NET fazemos a injeção de dependência usando o próprio construtor da classe e na classe Program.cs digitamos o seguinte código:

builder.Services.AddScoped<IMedicoRepository, MedicoRepository>();

Criamos uma interface com a assinatura dos métodos e a classe que implementa tais métodos.

Quando vi que o instrutor/professor usou a anotação Autowired resolvi pesquisar pois é novo para mim esse novo modo de injeção de dependência, ao pesquisar, vi vários sites não recomendando este uso e sim injeção por construtor mesmo.

A minha dúvida é a seguinte, isso de fato é um malefício para projetos grandes? Eu poderia fazer da seguinte forma abaixo?

    private final IMedicoRepository repository;

    public MedicoController(IMedicoRepository repository) {
        this.repository = repository;
    }
2 respostas
solução!

Olá Diogo, tudo bem?

Primeiramente, parabéns por estar buscando novos conhecimentos e se aprimorando em outras tecnologias! É sempre importante estar atualizado e expandir nossos horizontes.

Sobre a sua dúvida, a anotação Autowired é uma forma de injeção de dependência muito utilizada no Spring Framework. Ela permite que o próprio framework faça a resolução das dependências, sem que seja necessário instanciar manualmente cada uma delas.

No entanto, é importante lembrar que não existe uma única forma correta de fazer injeção de dependência. Cada projeto tem suas particularidades e necessidades, e cabe ao desenvolvedor escolher a melhor abordagem para cada caso.

A injeção de dependência por construtor, como você mencionou, é uma forma muito utilizada e recomendada em projetos maiores. Ela permite que as dependências sejam injetadas de forma clara e explícita, tornando o código mais fácil de entender e manter.

Portanto, sim, você pode utilizar a injeção de dependência por construtor no seu projeto Spring, assim como mostrou no exemplo que postou. Isso não significa que a anotação Autowired seja ruim ou prejudicial, mas sim que existem outras formas de fazer a injeção de dependência.

Espero ter ajudado e bons estudos!

Muito obrigado pelo esclarecimento!!