Операции 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”