Ошибка: «org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем…» в Spring

Я пытаюсь создавать микросервисы с помощью Spring Boot 3.0.2 и Spring Cloud. Я пытаюсь создать один микросервис, который подключается к базе данных Postgres, работающей в докере. Я получаю следующие ошибки:

org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем «customerController», определенным в файле [/Users/.../customer/CustomerController.class]: неудовлетворенная зависимость, выраженная через параметр конструктора 0: ошибка при создании bean-компонента с именем « customerService», определенный в файле [/Users/...customer/CustomerService.class]: неудовлетворенная зависимость, выраженная через параметр конструктора 0: ошибка при создании bean-компонента с именем «customerRepository», определенным в com.ioannispriovolos.customer.CustomerRepository, определенным в @EnableJpaRepositories, объявленным на JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: неуправляемый тип: класс com.ioannispriovolos.customer.Customer
Вызвано: java.lang.IllegalArgumentException: не управляемый тип: класс com.ioannispriovolos.customer.Customer

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

package com.ioannispriovolos.customer;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping("api/v1/customers")
public record CustomerController (CustomerService customerService){

    @PostMapping
    public void registerCustomer(@RequestBody CustomerRegistrationRequest customerRegistrationRequest) {
        log.info("new customer registration {}", customerRegistrationRequest);
        customerService.registerCustomer(customerRegistrationRequest);
    }
}

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

package com.ioannispriovolos.customer;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Customer {
    @Id
    @SequenceGenerator(
            name = "customer_id_sequence",
            sequenceName = "customer_id_sequence"
    )
    @GeneratedValue(
            strategy = GenerationType.SEQUENCE,
            generator = "customer_id_sequence"
    )
    private Integer id;
    private String firstName;
    private String lastname;
    private String email;
}

Предоставьте код класса Customer

kerbermeister 13.02.2023 21:23

@kerbermeister Спасибо за ответ, я отредактировал сообщение с классом, который вы меня просили.

Ioannis Priovolos 13.02.2023 21:28

Вы используете Spring Boot 3?

kerbermeister 13.02.2023 21:40

Да, я знаю, 3.0.2, если быть точным.

Ioannis Priovolos 13.02.2023 21:43
Лучшая компания по разработке спортивных приложений
Лучшая компания по разработке спортивных приложений
Ищете лучшую компанию по разработке спортивных приложений? Этот список, несомненно, облегчит вашу работу!
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Что такое Java 8 Streams API? Java 8 Stream API
Деревья поиска (Алгоритм4 Заметки к учебнику)
Деревья поиска (Алгоритм4 Заметки к учебнику)
(1) Двоичные деревья поиска: среднее lgN, наихудшее N для вставки и поиска.
1
4
147
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Модуль Spring Boot JPA в составе выпуска Spring Boot 3 стал работать с Jakarta Persistence API, а не с javax.persistence.api. Вот почему @EntityScan не находит объекты.

Читайте документы

Зависимость Джакарты

Добавьте эту зависимость в свой pom и измените импорт в своих объектах.

Изменить import javax.persistence.*; на import jakarta.persistence.*;

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