【发布时间】:2018-10-28 22:44:29
【问题描述】:
我在启动我的应用时遇到问题。有人可以帮我解决这个问题吗?
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.
GenericRepository
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);
}
BookServiceImpl
@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;
}
}
【问题讨论】:
-
将
@Autowired添加到BookServiceImpl的构造函数中。 -
@Berger 如果组件只有一个构造函数(自 Spring 4 IIRC 起),则不再需要使用
@Autowired。 -
我尝试将 @Autowired 添加到 BookServiceImpl 的构造函数中,但它不起作用,我将项目放入 github 以获得更多可见性
-
@MarkRotteveel:谢谢,我不知道。
标签: java spring-boot