решил для практики тестирования API развернуть свой собственный rest сервис на Java. Вроде все собрал, но при запуске возникает ошибка.
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'itemController' defined in file [J:\Jprojects\Aastri\target\classes\com\example\demo\controller\ItemController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'itemService' defined in file [J:\Jprojects\Aastri\target\classes\com\example\demo\service\ItemService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'itemRepository' defined in com.example.demo.repo.ItemRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Not a managed type: class com.example.demo.model.Item
мой pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>6.2.5</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.4</version>
</dependency>
</dependencies>
</project>
мой класс контроллера
package com.example.demo.controller;
import com.example.demo.dto.ItemDTO;
import com.example.demo.model.Item;
import com.example.demo.service.ItemService;
import lombok.AllArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@AllArgsConstructor
public class ItemController {
private final ItemService itemService;
@PostMapping
public ResponseEntity<Item> create(@RequestBody ItemDTO dto) {
return new ResponseEntity<>(itemService.create(dto), HttpStatus.OK);
}
@GetMapping
public ResponseEntity<List<Item>> readAll() {
return new ResponseEntity<>(itemService.readAll(), HttpStatus.OK);
}
@PutMapping
public ResponseEntity<Item> update(@RequestBody Item item) {
return new ResponseEntity<>(itemService.update(item), HttpStatus.OK);
}
@DeleteMapping("/{id}")
public HttpStatus delete(@PathVariable Long id) {
itemService.delete(id);
return HttpStatus.OK;
}
}
класс Item
package com.example.demo.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Item {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private Short amount;
}