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

中的构造函数的参数 0....Spring靴

史英睿
2023-03-14

启动我的应用程序时出现问题。有人能帮我解决这个问题吗?

Parameter 0 of constructor in com.journaldev.elasticsearch.service.BookServiceImpl required a bean of type 'com.journaldev.elasticsearch.dao.search.BookRepositorySearch' that could not be found.
Action:
Consider defining a bean of type 'com.journaldev.elasticsearch.dao.search.BookRepositorySearch' in your configuration.

总报告

public interface GenericRepository<T, K> {
  Map<String, Object> get(final K id);
}

GenericRepositoryImpl

public class GenericRepositoryImpl<T, K extends Serializable> implements GenericRepository<T, K> { 

  private RestHighLevelClient restHighLevelClient;

  private ObjectMapper objectMapper;

  public GenericRepositoryImpl(ObjectMapper objectMapper, RestHighLevelClient restHighLevelClient) {
    this.objectMapper = objectMapper;
    this.restHighLevelClient = restHighLevelClient;
  }

  @Override
  public Map<String, Object> get(K id) {
    return null;
  }
}

图书仓库搜索

@Component
public interface BookRepositorySearch extends GenericRepository<Book, Long> {}

图书服务

public interface BookService {
  Map<String, Object> get(final Long id);    
}

图书服务简介

@Service
public class BookServiceImpl implements BookService {

  private final BookRepositorySearch bookRepositorySearch;

  public BookServiceImpl(BookRepositorySearch bookRepositorySearch) {
    this.bookRepositorySearch = bookRepositorySearch;
  }      
  @Override
  public Map<String, Object> get(Long id) {
    return null;
  }
}

共有3个答案

燕鸿波
2023-03-14

如何继承一个类作为接口?

  @Component 
  public interface BookRepositorySearch extends GenericRepository<Book, Long> {}

使用类更改此接口,然后重试。

  @Component
  public class BookRepositorySearch extends GenericRepository<Book, Long> {}
武峻熙
2023-03-14

我用这个配置解决了它。在您的配置文件中查找@EnableAutoConfiguration

@Configuration

@EnableJpaRepositories(basePackages = "com.akog02.repostories")

@EntityScan(basePackages = "com.akog02.domain")

@EnableTransactionManagement

@EnableAutoConfiguration

public class WebConfiguration {

}
夏嘉德
2023-03-14

从您之前的评论来看,似乎您希望将< code > BookRepositorySearch 保留为一个接口。如果是这种情况,您需要创建该接口的一个具体实例,并在其上放置< code>@Component。

在接口声明中不需要< code>@Component,也不能在接口中扩展类。

public interface BookRepositorySearch {}

创建实现接口并扩展< code>GenericRepository的具体类型

@Component
public class BookRepositorySearchImpl 
    implements BookRepositorySearch 
    extends GenericRepository<Book, Long>  
{}

https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#beans-工厂级ctor

用构造函数实例

当您通过构造函数方法创建bean时,所有普通类都可以由Spring使用并与Spring兼容。也就是说,正在开发的类不需要实现任何特定的接口或以特定的方式编码。简单地指定bean类就足够了。但是,根据您对该特定bean使用的IoC类型,您可能需要一个默认(空)构造函数。

Spring IoC容器几乎可以管理您希望它管理的任何类;它不仅限于管理真正的JavaBeans。大多数Spring用户更喜欢实际的JavaBeans,它只有一个默认的(无参数的)构造函数和模仿容器中属性的适当的setters和getters。您还可以在容器中包含更多奇特的非bean样式的类。例如,如果您需要使用完全不符合JavaBean规范的遗留连接池,Spring也可以管理它。

 类似资料:
  • 我正试图编写一个简单的CRUD程序,我得到了这个错误。这个项目是基于我的项目。不知道我为什么不工作。 如果我注释掉构造函数,错误就会消失。我的房子里什么都没有。 有人能帮我一把吗? 这是我的代码: 实体/食品。JAVA 仓库/FoodRepository.java 控制器/食物控制器。JAVA 主课 波姆。xml

  • 我正在学习Spring Framework,我得到了以下错误消息: com.example.demo.AppUser.AppUserService中的构造函数的参数0需要类型为“com.example.demo.AppUser.AppUserRepository”的bean,但找不到该bean。 这是我的AppUserRepository 如果有人知道问题出在哪里,请帮帮我

  • 我使用的是jdk8,需要创建一个以类名作为构造函数参数的Spring组件。但是,使用我当前的代码,我遇到了运行时错误: 这是我的博客类: 这就是我尝试创建类的方式: 我可以了解一下创建该组件的正确方法/这里出了什么问题吗?提前感谢。

  • 在此处输入图像描述 在此处输入图像描述 我仍然不知道该怎么办(我在UserRepository上尝试了Repository注释-错误是一样的)。错误消息:`启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2022-03-14 09:04:54.626错误7236---[main]o.s.b.d.LoggingFailureAnalysisR

  • 实际上,我不明白无参数构造函数和默认构造函数的区别是什么。 在创建名为cFrame的Test对象时,是否调用此类的默认构造函数?

  • 本文向大家介绍解析C++中构造函数的默认参数和构造函数的重载,包括了解析C++中构造函数的默认参数和构造函数的重载的使用技巧和注意事项,需要的朋友参考一下 C++构造函数的默认参数 和普通函数一样,构造函数中参数的值既可以通过实参传递,也可以指定为某些默认值,即如果用户不指定实参值,编译系统就使形参取默认值。 【例】 程序运行结果为: 程序中对构造函数的定义(第12-16行)也可以改写成参数初始化