Я устанавливаю mongo с помощью docker-compose, использую Mongo Compass для взаимодействия с базой данных mongo и создаю базу данных продуктов
Код: Выделить всё
version: "3.8"
services:
mongodb:
image : mongo
container_name: mongodb
environment:
- PUID=1000
- PGID=1000
volumes:
- ./database/product-service/mongodb:/data/db
ports:
- 27017:27017
restart: unless-stopped
Контроллер
Код: Выделить всё
@RestController
@RequestMapping("/api/v1/product")
@RequiredArgsConstructor
public class ProductController {
private final ProductService productService;
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public void createProduct(@RequestBody ProductRequest productRequest) {
productService.createProduct(productRequest);
}
@GetMapping
@ResponseStatus(HttpStatus.OK)
public List getAllProducts() {
return productService.getAllProducts();
}
}
Код: Выделить всё
@Service
@RequiredArgsConstructor
@Slf4j
public class ProductService {
private final ProductRepository productRepository;
public void createProduct(ProductRequest productRequest) {
Product product = Product.builder()
.name(productRequest.getName())
.description(productRequest.getDescription())
.price(productRequest.getPrice())
.build();
productRepository.save(product);
log.info("Product {} is saved", product.getId());
}
public List getAllProducts() {
Listproducts = productRepository.findAll();
log.info("Get all products");
return products.stream().map(product -> map2ProductResponse(product)).toList();
}
private ProductResponse map2ProductResponse(Product product) {
return ProductResponse.builder()
.id(product.getId())
.name(product.getName())
.description(product.getDescription())
.price(product.getPrice())
.build();
}
}
Код: Выделить всё
@Document(value = "product")
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class Product {
private String id;
private String name;
private String description;
private BigDecimal price;
}
Код: Выделить всё
spring.data.mongodb.uri=mongodb://127.0.0.1:27017/product
Я попробовал заменить это, ничего не изменилось
Код: Выделить всё
spring.data.mongodb.port=27017
spring.data.mongodb.database=product
spring.data.mongodb.host=localhost
введите описание изображения здесь
Я также нашел аналогичный вопрос, я пробовал использовать это решение, оно у меня не работает, и решение слишком сложное для меня. Возникает ошибка
Код: Выделить всё
Error creating bean with name 'mongoConfig': Injection of autowired dependencies failed
Как я могу изменить подключение приложения Spring Boot к другой базе данных?>
Подробнее здесь: https://stackoverflow.com/questions/772 ... pring-boot
Мобильная версия