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

Não consigo fazer injeção de dependencia

em um projeto diferente do curso, eu tenho controllers que fazem injeção de dependencia dos meus services, porém esses services não são reconhecidos como beans qualificados, o spring não encontra. erro :

Error creating bean with name 'servicoController': Unsatisfied dependency expressed through field 'servicoDAO'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [com.smart4.sefazonline.dao.ServicoDAO]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

as classes service e repository estão anotadas de forma correta, e minha classe de configuração não tem praticamente nada :

package com.smart4.sefazonline.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@SpringBootApplication
public class Configuracao {

    @Autowired
    public static void main(String[] args) {
        SpringApplication.run(Configuracao.class, args);
    }


}

Alguém pode me ajudar ?

7 respostas

Lúcio, não colocamos @Autowired no método main, pois senão o Spring vai tentar injetar algo ai

Certo, eu já havia corrigido esse erro, mas ainda assim, a injeção de dependência não funciona.

Eu tenho um controller, e tentar injetar o service nele, ele não encontra o mesmo

Meu service está anotado com @service

Fala Lúcio, tranquilo?

Tem como você postar o código do seu DAO e do controller que está tentando utilizá-lo?

solução!

Consegui resolver o problema, o que estava acontecendo era que meu controller ainda não possuia métodos, apenas a injeção do service, e de alguma forma isso fazia com que a injeção não funcionasse, após eu criar um método no controller e mapeá-lo, tudo passou a funcionar normalmente

Opa Lúcio, que bom que conseguiu resolver o seu problema!

Posso fechar o tópico?

Pode sim

Ok, fechando!

Qualquer coisa não hesite em abrir um tópico :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software