java - spring 上下文未加载

标签 java spring spring-boot

我尝试加载上下文,但出现 UnsatisfiedDependencyException 不明白是什么原因,服务中提供了注解和构造函数

DataJpa存储库:

@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);
    }
}

访问服务:

@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: Error creating bean with name 'visitService' defined in file [D:\JAVA\library-project\target\classes\com\java\library\service\VisitService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.java.library.repository.VisitRepositoryImpl' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

主类还有:

@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);
    }

}

可能是什么问题?

最佳答案

尝试将存储库包添加到@ComponentScan配置

@ComponentScan({"com.java.library.service", "com.java.library.repository"})

关于java - spring 上下文未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57843581/

相关文章:

java - 更新子实体但保存父实体会导致 ObjectOptimisticLockingFailureException

java - 如何只获得类型为 XMLGregorianCalendar 的年份

spring-boot - 巨大的 org.springframework.boot.loader.LaunchedURLClassLoader 内存使用量

java - 命令从 exec() 失败但在终端上工作

java - iterator.next() 返回替代对象

java - 高效地将多个大型 xml 文件合并为一个文件

java - 使用 Spring,@InjectMock 注释测试目标不使用模拟

java - 将Json转换为hadoop的顺序文件

java - Springboot API 返回空响应

spring - 通过 Spring Webflux 中的请求生命周期共享数据