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

@Autowired

Bom dia, poderia me explicar o que seria a marcação @Autowired, para que serve e onde geralmente é utilizada ?

2 respostas
solução!

@Autowired é uma anotação do framework Spring que fica responsável pela injeção de dependências. É a implementação de um padrão de projeto (Injeção de dependência) que inverte o controle da injeção de dependências, ou seja, o container do Spring fica responsável por isso.

De uma forma mais simples, ao invés de vc instanciar a dependência diretamente, vc repasse essa responsabilidade para o framework que gerencia isso pra vc.

Opa Diogo, tudo certo?

Então, ela é uma anotação do Spring para injeção de classes/dependências, que vem com o conceito de injeção de depêndencias, evitando o alto nível de acoplamento de código, aumentando a legibilidade, facilidade de manutenção e facilidade de testes.

O que é injeção de depêndencias? A injeção de dependências é uma das duas maneiras de implementar a inversão de controle. Inversão de controle é um termo mais amplo, onde a responsabilidade de informar a implementação a ser utilizada deixa de ser da classe, e passa a ser do consumidor da classe.

Toda implementação de inversão de controle nos ajuda a seguir o primeiro e o último dos cincos princípios SOLID.

"O padrão Injeção de dependência diz: Módulos de alto nível não devem depender de módulos de baixo nível. Ambos devem depender de abstrações. Abstrações não devem depender de detalhes. Detalhes devem depender de abstrações."

Ou seja, no Spring por exemplo, utilizamos o @Autowired para indicar ao Spring que o objeto anotado é um componente ou Bean dele e que queremos que ele nos dê uma instância por meio do recurso de injeção de dependência. (Nessa aula deste curso, tem a explicação mais completa).

Isso nos facilita a não precisar cuidar de todo o processo de instância de um new QualquerRepository();, com a anotação @Autowired, localizada acima da declaração do objeto Repository, o Spring tratará todo o ciclo de vida e nós podemos apenas nos preocupar na utilização.

Espero que tenha ficado claro, qualquer coisa, estou a disposição! (Não vi que já tinha sido respondida, foi mal)