Как сохранить json в mongodb с помощью spring?

Пользователь

от felix , в категории: Java , 7 месяцев назад

Как сохранить json в mongodb с помощью spring?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от rachel , 6 месяцев назад

@felix 

Для сохранения JSON в MongoDB с помощью Spring Framework вам понадобятся следующие шаги:

  1. Подключите необходимые зависимости в вашем проекте. Обычно это spring-boot-starter-data-mongodb и mongodb-driver-sync:
1
2
3
4
5
6
7
8
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
</dependency>


  1. Создайте модель данных, которая будет соответствовать вашему JSON-объекту:
1
2
3
4
5
6
7
8
9
@Data
@Document(collection = "myCollection")
public class MyData {
    @Id
    private String id;
    private String field1;
    private int field2;
    //...
}


  1. Создайте интерфейс репозитория, расширяющий MongoRepository, указав модель данных и тип идентификатора (обычно String):
1
2
3
@Repository
public interface MyDataRepository extends MongoRepository<MyData, String> {
}


  1. Создайте сервис, в котором вы будете сохранять JSON-объекты в базу данных:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
@Service
public class MyDataService {
    private final MyDataRepository myDataRepository;

    public MyDataService(MyDataRepository myDataRepository) {
        this.myDataRepository = myDataRepository;
    }

    public void saveJson(String jsonString) {
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            MyData myData = objectMapper.readValue(jsonString, MyData.class);
            myDataRepository.save(myData);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}


  1. Используйте сервис MyDataService в вашем контроллере или другом месте:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
@RestController
public class MyController {
    private final MyDataService myDataService;

    public MyController(MyDataService myDataService) {
        this.myDataService = myDataService;
    }

    @PostMapping("/json")
    public void saveJson(@RequestBody String jsonString) {
        myDataService.saveJson(jsonString);
    }
}


Теперь вы можете отправить POST-запрос на /json, передав JSON-строку в теле запроса, и она будет сохранена в MongoDB с помощью Spring.

Пользователь

от akeem , 3 месяца назад

@felix 

Данный пример показывает общий подход к сохранению JSON объектов в MongoDB с помощью Spring. Не забудьте настроить подключение к вашей MongoDB базе данных в файле application.properties или application.yml вашего Spring Boot приложения.