当前位置: 首页 > 知识库问答 >
问题:

未将存储库注入识别为bean

蒯华彩
2023-03-14

Hy各位

我有我的麻烦的简化版本。我正在尝试运行我的应用程序,但它失败了,因为存储库不能被注入。我已经尝试将存储库注释为服务,并添加要扫描的存储库包,但都没有效果。有人能帮我吗?

我有个例外

描述:

br中的字段topicRepository。通用域名格式。阿鲁拉。控制器。TopicController需要类型为“br”的bean。通用域名格式。阿鲁拉。存储库。找不到TopicRepository。

注入点具有以下注释:-@org。springframework。豆。工厂注释。自动连线(必需=真)

行动:

考虑在配置中定义br.com.alura.repository.TopicRepository类型的bean。

Controller/Service

@Autowired
private TopicRepository topicRepository;

@GetMapping(value = "/api/topics", produces = MediaType.APPLICATION_JSON_VALUE)
public Page<TopicBriefOutputDto> listTopics(TopicSearchInputDto topicSearch, @PageableDefault(sort="creationInstant", direction=Sort.Direction.DESC) Pageable pageRequest) {
    Specification<Topic> topicSearchSpecification = topicSearch.build();
    Page<Topic> topics = this.topicRepository.findAll(topicSearchSpecification, pageRequest);
    return TopicBriefOutputDto.listFromTopics(topics);
}

Start

@SpringBootApplication
@Configuration
@ComponentScan(basePackages ={"br.com.alura.controller"})
@EntityScan
@EnableAutoConfiguration
@EnableJpaRepositories
@EnableSpringDataWebSupport
public class ForumApplication {

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

}

Repository

public interface TopicRepository extends Repository<Topic, Long>, JpaSpecificationExecutor<Topic> {

}

共有1个答案

万俟招
2023-03-14

您可能设置了不正确的基本包。包装范围太窄。

试试这个:

@EnableJpaRepositories(basePackages = {"br.com.alura.repository"})

或更改br。通用域名格式。阿鲁拉。控制器br。通用域名格式。阿鲁拉

@ComponentScan(basePackages ={"br.com.alura"})
 类似资料:
  • 我正在使用匕首2,我有一个定义如下的: 这是FYViewModel的: 但是,变量始终为空。 如何使用匕首2将Repositroy注入我的ViewModel?

  • 这是我的Spring Boot应用程序相关代码: 另一方面,我有一个关于包的存储库: 因此,我有一个具有依赖关系的服务: 然而,我得到的信息是: NoSuchBeanDefinitionException:没有类型为“net”的合格bean。根卡特。横向的。埃斯帕伊多克。后台。刀。“文件”可用 我也尝试过添加,但它仍然不起作用。 有什么想法吗? 编辑 这是我的类: 编辑2: 我刚刚在spring日

  • 问题内容: 我需要将两个对象注入。其中一个是的实例,我得到这样的信息: 那么如何在我的services.yml中声明呢?这是服务: 问题答案: 我找到了此链接,这对我有用:

  • 我有在源存储库中提交的jar,我需要将其用作maven项目中的依赖项。经过研究,添加特定于项目的本地存储库似乎是最干净的方式。请注意,此存储库将特定于此项目,不同于我机器上. m2目录下的本地存储库。pom是war类型,我已经像下面的描述一样定义了存储库: 在lib目录中是jar的路径,没有其他文件: com/my公司/东西/我的神器/1.0.0/my-artifact-1.0.0.jar. 此依

  • 我对docker注册表和存储库之间的区别感到困惑。Docker文档似乎可以互换使用这两个词。此外,存储库有时也被称为映像,例如来自其文档的以下内容: 为了将存储库推送到它的注册表,您需要命名一个映像,或者将您的容器提交给一个命名映像,就像我们在这里看到的那样。 现在您可以将此存储库推送到由其名称或标记指定的注册表中。 如何将存储库推进到注册表?你不是在把映像推到存储库吗?

  • 我正在用Symfony制作简单的应用程序。我在这里配置了服务 我的服务使用存储库(例如,评论服务使用评论存储库),这里是的构造函数 性质 构造函数: 当我试图运行我的应用程序我得到这个错误 PHP致命错误:未捕获Symfony\Component\DependencyInjection\Exception\AutowiringFailedException:无法自动连线服务“AppBundle\R