Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Dúvida] Erro desconhecido

Estou seguindo exatamente o que foi mostrado no vídeo, mas meu código está apresentando esse erro:
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2025-03-18T21:21:17.336-03:00 ERROR 27216 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :


APPLICATION FAILED TO START


Description:

Field artistaRepository in br.com.joaoDev.bibliotecaMusica.service.BibliotecaMusicaApplication required a bean of type 'br.com.joaoDev.bibliotecaMusica.repository.ArtistaRepository' that could not be found.

The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type 'br.com.joaoDev.bibliotecaMusica.repository.ArtistaRepository' in your configuration.

1 resposta
solução!

Oi, João.

O problema aqui é a estrutura de pacotes.

Sua classe principal está em br.com.joaoDev.bibliotecaMusica.service.BibliotecaMusicaApplication, enquanto o repositório está em br.com.joaoDev.bibliotecaMusica.repository. A anotação @SpringBootApplication faz o component scan a partir do pacote onde a classe principal se encontra e desce apenas para os subpacotes dele. Como repository é irmão de service, e não filho, o Spring nunca enxerga a interface ArtistaRepository e não cria o bean para injetar.

Esse erro acontece quando a classe anotada não fica na raiz do projeto. Resolva fazendo o seguinte: mova a classe BibliotecaMusicaApplication para o pacote br.com.joaoDev.bibliotecaMusica, deixando service, repository e model como subpacotes dela. Feito isso, ajuste o package no topo do arquivo e os imports que a IDE apontar, e o bean passa a ser encontrado normalmente. Existe também a alternativa de anotar a classe principal com @EnableJpaRepositories("br.com.joaoDev.bibliotecaMusica.repository") e @EntityScan("br.com.joaoDev.bibliotecaMusica.model"), embora reorganizar os pacotes seja o caminho mais limpo e o padrão recomendado pelo Spring.

Depois de ajustar a estrutura, conta para a gente: o cadastro de artistas e músicas conseguiu persistir direitinho no banco?

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!