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

Anotation @autowired

Galera, temos o seguinte exercício:

Dentro do ProdutosControllers, para utilizarmos o produtoDAO do tipo ProdutoDAO simplesmente anotamos o objeto com a annotation @Autowired do Spring. Por que ao invés de instanciarmos manualmente, fizemos essa abordagem?

Resposta que eu acho também estar correta O @AutoWired indica para o Spring que ele precisa instanciar o objeto para nós. Essa anotação funciona para qualquer classe do projeto.

Resposta dada como correta Utilizamos o @AutoWired para indicar ao Spring que o objeto anotado é um Bean dele e que queremos que ele nos dê uma instância por meio do recurso de injeção de dependência.

Acredito que ambas as questões estão corretas, porque qualquer objeto pode ser instânciado pelo Spring pela notação @autowired. Não sendo necessário que o objeto seja um Bean do Spring. Alguém pode me esclarecer essa questão? E se possível, dizer o que de fato é um Bean.

5 respostas
solução!

Bom dia Gabriel, na verdade o spring precisa conhecer a sua classe para instanciar, por exemplo, nas configuração do MVC passamos o pacote das controllers e dos DAOs para ele conhecer, por isso ele injeta com @Autowired, agora se criar um pacote chamado teste e uma classe Teste e tentar injetar com @Autowired em um Controller o spring vai falar que não conhece a classe Teste:

expected at least 1 bean which qualifies as autowire candidate

Bom Dia, Guilherme Romão,

Então a partir do momento em que "dizemos" ao Spring onde estão nossas classes, as nossas classes se tornam um Bean do Spring? Tendo em mente que um Bean seria uma objeto capaz de ser administrador/manipulado pelo Spring?

Além de colocar os pacotes para serem scaneados precisamos anotar a classe com @Component,@Controller, @Repository, @Service, dai podemos criar os beans do spring

no curso https://cursos.alura.com.br/course/spring-mvc tem uma aula sobre injeção de dependências, talvez te ajude a entender melhor, qualquer coisa da uma olhada nesta aula

Opá, pode deixar que eu vou dar olhada. Obrigado pelo suporte galera, já consegui compreender melhor. Valew!