【发布时间】:2017-01-16 19:56:19
【问题描述】:
我很想运行一个 JUnit 测试,嗯,我的 spring boot 项目是这样的:
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:
创建名为“loginService”的 bean 时出错:不满足的依赖关系 通过字段'loginDao'表示:没有类型的限定bean
[com.br.suppcomm.ocp.dao.LoginDao] 找到依赖项 [com.br.suppcomm.ocp.dao.LoginDao]:预计至少有 1 个 bean 有资格成为此依赖项的自动装配候选者。依赖 注释: {@org.springframework.beans.factory.annotation.Autowired(required=true)}; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 找到类型为 [com.br.suppcomm.ocp.dao.LoginDao] 的合格 bean 依赖项 [com.br.suppcomm.ocp.dao.LoginDao]:预计至少为 1 有资格作为此依赖项的自动装配候选者的 bean。 依赖注解: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
不知道怎么回事!!请。
【问题讨论】:
-
你的课程在哪些包中?
-
对于初学者,您应该让我们看看您的主要课程...您的注释全都丢失了...您的存储库需要一个@Repository。您需要正确注释您的测试类,如下所示:@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = Application.class) 更准确的答案,我们需要查看您的主类...
标签: spring spring-boot autowired