Службе требовался bean-компонент типа «Репозиторий», который не удалось найти в проекте Springboot

я новичок в Springboot. Я пытаюсь работать со своими данными с помощью JPA. Я столкнулся с этой проблемой. ПРИЛОЖЕНИЕ НЕ ЗАПУСТИЛОСЬ


Описание:

Параметр 0 конструктора в com.example.service.MemberService требовал bean-компонента типа com.example.repository.MemberRepository, который не удалось найти.

Действие:

Рассмотрите возможность определения bean-компонента типа com.example.repository.MemberRepository в вашей конфигурации.

это моя структура проекта: введите сюда описание изображения

MemberService.java

@Service
public class MemberService {

    private final MemberRepository memberRepository;

    @Autowired
    public MemberService(MemberRepository memberRepository) {

        this.memberRepository = memberRepository;
    }

    public List<Member> getAllMembers() {
        return memberRepository.findAll();
    }
}

MemberController.java

@Controller
public class MemberController {

    private final MemberService memberService;

    @Autowired
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }

    @GetMapping("/members")
    public String getAllMembers(Model model) {
        List<Member> members = memberService.getAllMembers();
        model.addAttribute("members", members);
        return "members";
    }
}

MemberRepository.java

@Repository
public interface MemberRepository extends JpaRepository<Member, Long> {
}

Member.java


@Entity
public class Member {
    private Long id;
    private String name;
    private String kana;
    private LocalDate birthDate;
    private String birthPlace;
    private String ki;
    private String link;

    public void setId(Long id) {
        this.id = id;
    }

    @Id
    public Long getId() {
        return id;
    }

    // Getter and Setter methods
}

Основной метод

@SpringBootApplication
public class Application {

    public static void main(String[] args) {

        ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
        String serverPort = context.getEnvironment().getProperty("server.port");
        String contextPath = context.getEnvironment().getProperty("server.servlet.context-path", "");
        System.out.println("Application is running at: http://localhost:" + serverPort + contextPath);
    }

}

Я, как и я, проверяю некоторые вопросы о stackoverflow, но не нахожу правильного метода решения. Я буду благодарен, если вы дадите мне правильное решение и расскажете, как мне изменить свой код. спасибо за ответ, мне действительно нужна ваша помощь.

Позвольте мне угадать, «следуя» руководству, вы решили, что вам нужен Spring Boot 3, учебник предназначен для Spring Boot 2. Вы копируете вставленные классы и «исправляете» ошибки компилятора, добавляя дополнительные зависимости к вашему приложению. Зависимости, такие как e persistence-api или старые версии Hibernate.

M. Deinum 01.03.2024 15:17

@М. Динум, спасибо за ответ! На самом деле моя версия учебника — 2, но более точного решения я до сих пор не понимаю... извините... Можете ли вы сказать мне более точное решение этой проблемы? Спасибо!

idonknow 01.03.2024 15:40

Если есть проблемы с учебным пособием, которому вы следуете, вам следует связаться с ними для дальнейшего расследования, чтобы они могли исправить свою ошибочную чушь. В противном случае, пожалуйста, скачайте актуальное руководство, которое правильно работает с текущей цепочкой зависимостей. Исправление старых и дрянных руководств — это не то, для чего создается SO.

Slevin 01.03.2024 16:05

Я не уверен, что добавление комментариев позволяет вам их увидеть, но я решил эту проблему. Это проблема полной несовместимости версий. На самом деле persistence-api старый и несовместим с Springboot3, а моя версия Hibernate старая... но я так считаю много времени, чтобы получить это.... на самом деле важно заметить, что информация консоли отладки важна. Спасибо, теперь я перехожу на 3 и снова создаю свой проект. @М. Deinum, но, возможно, это наводит меня на мысль, что мне следует подумать, неверна ли версия, когда я столкнусь со знакомой проблемой.

idonknow 02.03.2024 10:01

Если вы следуете руководству, следуйте инструкциям. В том числе версии используемого программного обеспечения. Если они используют версию 2.6 или 2.7.x, оставайтесь в этой версии и следуйте инструкциям. Не обновляйтесь до более новых версий, так как это сделает руководство бесполезным, поскольку в разных версиях все меняется, и если вы перейдете на Spring Boot 3, это будет серьезным изменением при переходе с JavaEE на JakartaEE.

M. Deinum 02.03.2024 19:37
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

проблема с персистентностью API:

Ошибка Spring Boot с репозиторием/объектом «не управляемого типа»

и создадим новый проект: https://start.spring.io/

и проверьте, совместима ли версия зависимости.

тогда, возможно, в следующий раз у меня возникнет проблема, я должен предоставить pom.xml, конкретно импорт пакета и файл конфигурации, который будет лучше...

idonknow 02.03.2024 10:10

Другие вопросы по теме