gpt4 book ai didi

java - Spring 启动: Repository interface not found with annotations

转载 作者:行者123 更新时间:2023-12-02 06:19:23 25 4
gpt4 key购买 nike

我创建了一个简单的应用程序,它使用 Spring boot 和 JPA/Hibernate 将消息保存在 postgresql 数据库中。所有包 Controller/Service/Repository 都位于子包中。

但是我收到一个错误:spring boot 无法识别 DAO 包中的存储库接口(interface)。

我有另一个项目,所有工作都无需使用@EnableJpaRepositories,但在这个项目(相同的结构)中我遇到了这个问题。

项目结构:

app.shellx(函数main())

---- app.shellx.dao

---- app.shellx.controller

---- app.shellx.service

MessageRepository.java

package app.shellx.dao;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

import app.shellx.model.Message;

@Repository
public interface MessageRepository extends CrudRepository<Message, Long> {

}

MessageServiceImpl.java

package app.shellx.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import app.shellx.dao.MessageRepository;
import app.shellx.model.Message;

@Service
public class MessageServiceImpl implements MessageService {

@Autowired
private MessageRepository messageRepository;

public void add(Message message) {
this.messageRepository.save(message);
}

}

Eclipse 中的错误代码:

<小时/>

应用程序无法启动

<小时/>

描述:

app.shellx.service.MessageServiceImpl 中的字段 messageRepository 需要“app.shellx.dao.MessageRepository”类型的 Bean,但无法找到。

注入(inject)点有以下注解: - @org.springframework.beans.factory.annotation.Autowired(required=true)

行动:

考虑在您的配置中定义“app.shellx.dao.MessageRepository”类型的 bean。

编辑:问题已解决。这是一个依赖错误。只需添加此 Maven 依赖项即可运行:

org.springframework.boot spring-boot-starter-data-jpa 2.1.4.RELEASE

最佳答案

正确命名并放置包,com.app - SpringBootApplicationcom.app.controller - Controller 类com.app.repo - Repo 类扩展 CrudRepository (如果提及任何注释请删除)com.app.model - 您的表类(实体)

Spring boot 将自动配置

关于java - Spring 启动: Repository interface not found with annotations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55846237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com