Операции CRUD с использованием Spring Boot и базы данных MongoDB с использованием docker-compose.
Для установки на компьютере требуется Docker. Установите Docker из здесь
Установка
1) Клонируйте репозиторий отсюда Нажмите здесь и выполните следующие команды.
docker-compose up
Выход
| – | получить | http://localhost:8080/products | Получить все продукты |
| – | получить | http://localhost:8080/products /{идентификатор} | Поиск товара по идентификатору |
| { “идентификатор”: “1”, “имя”: “Мобильный”, “Описание”: “Мобильный телефон Samsung”. } | пост | http://localhost:8080/products | Чтобы добавить продукт в базу данных |
| { “идентификатор”:”1″, “имя”: “Apple Iphone”, “Описание”:”Apple” } | класть | http://localhost:8080/products | Чтобы обновить существующую запись. |
| – | удалить | http://localhost:8080/products /{идентификатор} | Удалить запись, подлежащую идентификации |
Использование
ProductRepository.java
@Repository public interface ProductRepository extends MongoRepository{ }
Конфигурация
применение.свойства
spring.data.mongodb.host=mongo_db spring.data.mongodb.port=27017 spring.data.mongodb.database=mydb
docker-compose.yml
version: '3.3'
services:
#service 1: definition of mongo database
mongo_db:
image: mongo
container_name: mongoDB
restart: always
ports:
- 27017:27017
#service 2: definition of your spring-boot app
productservice: #it is just a name, which will be used only in this file.
image: product-service #name of the image after dockerfile executes
container_name: product-service-app #name of the container created from docker image
build:
context: . #docker file path (. means root directory)
dockerfile: Dockerfile #docker file name
ports:
- "8080:8080" #docker containter port with your os port
restart: always
depends_on: #define dependencies of this app
- mongo_db #dependency name (which is defined with this name 'db' in this file earlier)
Файл Dockerfile
FROM openjdk:11 as mysqldoc EXPOSE 8084 WORKDIR /app # Copy maven executable to the image COPY mvnw . COPY .mvn .mvn # Copy the pom.xml file COPY pom.xml . # Copy the project source COPY ./src ./src COPY ./pom.xml ./pom.xml RUN chmod 755 /app/mvnw RUN ./mvnw dependency:go-offline -B RUN ./mvnw package -DskipTests RUN ls -al ENTRYPOINT ["java","-jar","target/springboot-demo-mysql-0.0.1-SNAPSHOT.jar"]
Оригинал: “https://dev.to/atharvasiddhabhatti/spring-boot-crud-mongo-db-docker-jop”