没有找到依赖类型的合格 bean

No qualifying bean of type found for dependency

我正在尝试 运行 JUnit 测试 um 我的 spring 引导项目我是这样画的:

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import com.br.suppcomm.ocp.entity.Login;


public interface LoginDao extends JpaRepository<Login, Long>{
...
}

服务:

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.br.suppcomm.ocp.dao.CompanyDAO;
import com.br.suppcomm.ocp.dao.LoginDao;
import com.br.suppcomm.ocp.entity.Login;



@Service
public class LoginService  {

    @Autowired LoginDao loginDao; 


    @Autowired CompanyDAO companyDao;


    public void save(Login login) {

        loginDao.save(login);


    }


    public void delete(Login login) {
         loginDao.delete(login);
    }


    public Login findById(Login login) {
        return loginDao.findOne(login.getLoginId());
    }


    public Login findByEmail(Login login) {
        return loginDao.findByEmail(login.getEmail());
    }


    public Login FindByLogin(Login login) {
        return loginDao.FindByLogin(login);
    }


    public List<Login> getAll() {

        return loginDao.findAll();
    }


    public Login getUserAccessLoginPass(String login, String password) {
        return loginDao.getUserAccessLoginPass(login, password);
    }


    public void update(Login login) {
         loginDao.save(login);

    }

}

测试:

package com.example;


import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import com.br.suppcomm.ocp.service.LoginService;


@RunWith(SpringRunner.class)

@SpringBootTest
public class OcpJpaApplicationTests {

    @Autowired LoginService loginService;

    @Test
    public void contextLoads() {


    }    

}

当我 运行 这段代码确实向我显示了以下错误。

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException:        

Error creating bean with name 'loginService': Unsatisfied dependency expressed through field 'loginDao': No qualifying bean of type

[com.br.suppcomm.ocp.dao.LoginDao] found for dependency [com.br.suppcomm.ocp.dao.LoginDao]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.br.suppcomm.ocp.dao.LoginDao] found for dependency [com.br.suppcomm.ocp.dao.LoginDao]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

我不知道发生了什么!!请。

请将 classes 属性添加到您的 @SpringBootTest 注释中,如下所示:

@SpringBootTest(classes = { Application.class })

这样它就会知道它必须进行组件扫描等,您已在 Application class.

中指定

在 LoginDao 上添加 @Repository 注解

您需要将此注释添加到您的测试中:

@DataJpaTest

这将导致您的应用程序的持久性切片被初始化。

添加@Repository 你的界面
annotation ,以便它可以自动装配。

@Repository
public interface LoginDao extends JpaRepository<Login, Long>{

}

这样就可以了! 异常表示 SPring 无法找到限定符,要自动装配您需要对其进行原型设置的内容。