реквизит приложения:
Код: Выделить всё
spring.application.name=Inventory
spring.datasource.url=jdbc:mysql://localhost:3306/inventory
spring.datasource.username=root
spring.datasource.password=
spring.data.mongodb.uri=mongodb://localhost:27017/
spring.data.mongodb.database=mongoInventory
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
logging.level.org.springframework.data.mongodb=DEBUG
logging.level.org.springframework=DEBUG
server.error.include-exception=true
server.error.include-stacktrace=always
spring.main.allow-circular-references=true
logging.level.org.hibernate=TRACE
Код: Выделить всё
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.5'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.InventoryCHU'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '21'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
implementation 'io.jsonwebtoken:jjwt-impl:0.11.5'
implementation 'io.jsonwebtoken:jjwt-jackson:0.11.5'
implementation group: 'org.python', name: 'jython-slim', version: '2.7.3'
compileOnly 'org.projectlombok:lombok'
implementation 'com.h2database:h2'
implementation 'io.jsonwebtoken:jjwt:0.9.1' // JWT library
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
Код: Выделить всё
package com.InventoryCHU.Inventory.Repository;
import com.InventoryCHU.Inventory.Models.BreakDown;
import org.springframework.data.mongodb.repository.MongoRepository;
import java.util.Optional;
public interface BreakDownRepository extends MongoRepository
{
Optional
findBreakDownByItemId(String item);
}
Код: Выделить всё
package com.InventoryCHU.Inventory.Services;
import com.InventoryCHU.Inventory.Models.BreakDown;
import com.InventoryCHU.Inventory.Repository.BreakDownRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class BreakDownService {
@Autowired
BreakDownRepository breakDownRepository;
public List
getAllBreakDowns(){
return breakDownRepository.findAll();
}
public Optional
getBreakDownById(String Id){
return breakDownRepository.findById(Id);
}
public BreakDown createBreakDown(BreakDown breakDown){
return breakDownRepository.save(breakDown);
}
public void deleteBreakDown(String Id){
breakDownRepository.deleteById(Id);
}
public Optional
findBreakDownByItemId(String productId){ return breakDownRepository.findBreakDownByItemId(productId); }
}
Код: Выделить всё
package com.InventoryCHU.Inventory.Controllers;
import com.InventoryCHU.Inventory.Models.BreakDown;
import com.InventoryCHU.Inventory.Services.BreakDownService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("/api/breakdown")
public class BreakDownController {
@Autowired
BreakDownService breakDownService;
@GetMapping
public ResponseEntity getAllBreakDowns() {
List
breakDowns = breakDownService.getAllBreakDowns();
return ResponseEntity.ok(breakDowns);
}
@GetMapping("/{id}")
public ResponseEntity
getBreakDownById(@PathVariable String id) {
Optional
breakDown = breakDownService.getBreakDownById(id);
return breakDown.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
@GetMapping("/product-{id}")
public ResponseEntity
getBreakDownByUserId(@PathVariable("id") String productId){
Optional
breakDown = breakDownService.findBreakDownByItemId(productId);
return breakDown.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
@PostMapping(consumes = "application/json", produces = "application/json")
public ResponseEntity
createBreakDown(@RequestBody BreakDown breakDown) {
BreakDown createdBreakDown = breakDownService.createBreakDown(breakDown);
return ResponseEntity.status(HttpStatus.CREATED).body(createdBreakDown);
}
@DeleteMapping("/delete/{id}")
public ResponseEntity deleteBreakDown(@PathVariable String id) {
breakDownService.deleteBreakDown(id);
return ResponseEntity.noContent().build();
}
}
Код: Выделить всё
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'breakDownController': Unsatisfied dependency expressed through field 'breakDownService': Error creating bean with name 'breakDownService': Unsatisfied dependency expressed through field 'breakDownRepository': Error creating bean with name 'breakDownRepository' defined in com.InventoryCHU.Inventory.Repository.BreakDownRepository defined in @EnableMongoRepositories declared on MongoRepositoriesRegistrar.EnableMongoRepositoriesConfiguration: Cannot resolve reference to bean 'mongoTemplate' while setting bean property 'mongoOperations'
Код: Выделить всё
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'breakDownService': Unsatisfied dependency expressed through field 'breakDownRepository': Error creating bean with name 'breakDownRepository' defined in com.InventoryCHU.Inventory.Repository.BreakDownRepository defined in @EnableMongoRepositories declared on MongoRepositoriesRegistrar.EnableMongoRepositoriesConfiguration: Cannot resolve reference to bean 'mongoTemplate' while setting bean property 'mongoOperations'
Код: Выделить всё
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'breakDownRepository' defined in com.InventoryCHU.Inventory.Repository.BreakDownRepository defined in @EnableMongoRepositories declared on MongoRepositoriesRegistrar.EnableMongoRepositoriesConfiguration: Cannot resolve reference to bean 'mongoTemplate' while setting bean property 'mongoOperations'
Код: Выделить всё
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mongoTemplate' defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDatabaseFactoryDependentConfiguration.class]: Unsatisfied dependency expressed through method 'mongoTemplate' parameter 1: Error creating bean with name 'mappingMongoConverter' defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDatabaseFactoryDependentConfiguration.class]: Unsatisfied dependency expressed through method 'mappingMongoConverter' parameter 1: Error creating bean with name 'mongoMappingContext' defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDataConfiguration.class]: Unable to make field private java.util.Date java.security.Timestamp.timestamp accessible: module java.base does not "opens java.security" to unnamed module @3c9754d8
Код: Выделить всё
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'mappingMongoConverter' defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDatabaseFactoryDependentConfiguration.class]: Unsatisfied dependency expressed through method 'mappingMongoConverter' parameter 1: Error creating bean with name 'mongoMappingContext' defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDataConfiguration.class]: Unable to make field private java.util.Date java.security.Timestamp.timestamp accessible: module java.base does not "opens java.security" to unnamed module @3c9754d8
Код: Выделить всё
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongoMappingContext' defined in class path resource [org/springframework/boot/autoconfigure/data/mongo/MongoDataConfiguration.class]: Unable to make field private java.util.Date java.security.Timestamp.timestamp accessible: module java.base does not "opens java.security" to unnamed module @3c9754d8
Код: Выделить всё
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.Date java.security.Timestamp.timestamp accessible: module java.base does not "opens java.security" to unnamed module @3c9754d8
Подробнее здесь: https://stackoverflow.com/questions/788 ... pring-boot