我试图加载上下文,但是我得到了UnsatisfiedDependencyException --我不知道原因是什么,服务中提供了注释和构造函数
DataJpaRepository:
@Transactional(readOnly = true)
public interface DataJpaRepository extends JpaRepository<Visit, Long> {
@Override
@Transactional
Visit save(Visit visit);
Visit findByGuestId(long guestId);
@Query("SELECT DISTINCT v FROM Visit v WHERE v.date BETWEEN :from AND :to")
List<Visit> getBetween(@Param("from") Date from, @Param("to") Date to);
}
@Repository
public class VisitRepositoryImpl implements VisitRepository {
@Autowired
private DataJpaRepository dataJpaRepository;
@Override
public Visit get(long guestId) {
return dataJpaRepository.findByGuestId(guestId);
}
@Override
public Visit save(Visit visit) {
return dataJpaRepository.save(visit);
}
@Override
public List<Visit> getAll() {
return dataJpaRepository.findAll();
}
@Override
public List<Visit> getBetween(Date from, Date to) {
Objects.requireNonNull(from, "fromDate must not be null");
Objects.requireNonNull(to, "toDate must not be null");
return dataJpaRepository.getBetween(from, to);
}
}VisitService:
@Service
public class VisitService {
private VisitRepositoryImpl repository;
@Autowired
public VisitService(VisitRepositoryImpl repository) {
this.repository = repository;
}
public Visit save(Visit visit) {
return repository.save(visit);
}
public List<Visit> getAll() {
return repository.getAll();
}
public List<Visit> getBetween(Date from, Date to) {
Assert.notNull(from, "fromDate must not be null");
Assert.notNull(to, "toDate must not be null");
return repository.getBetween(from, to);
}
}我感到异常的原因是:
org.springframework.beans.factory.UnsatisfiedDependencyException:错误创建D:\JAVA\library-project\target\classes\com\java\library\service\VisitService.class:文件中定义的名称为“visitService”的bean,通过构造函数参数0表示不满意的依赖关系;嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:,没有'com.java.library.repository.VisitRepositoryImpl‘类型的限定bean :预期至少有一个bean,它可以作为自动选择。依赖性注释:{}
主修班还包括:
@EnableJpaRepositories("com.java.library.repository")
@EntityScan("com.java.library.model")
@ComponentScan("com.java.library.service")
@SpringBootApplication
public class LibraryApplication {
public static void main(String[] args) {
SpringApplication.run(LibraryApplication.class, args);
}
}有什么问题吗?
发布于 2019-09-08 17:23:50
尝试将存储库包添加到@ComponentScan配置中
@ComponentScan({"com.java.library.service", "com.java.library.repository"})发布于 2019-09-08 16:25:35
尝试在VisitService类中添加@Autowired注释。
@Autowired
private VisitRepositoryImpl repository;https://stackoverflow.com/questions/57843581
复制相似问题