Разница между ReactiveMongo, Mongo-Module и MongoHelper

Mongo с Play-Framework для меня в новинку. У меня есть Spring-Framework фон, в котором мы создаем Controller, Business and DAO приложения структуры слоя. Теперь я хочу попробовать вкус Play-Framework с ReactiveMongo. Для создания нашего примера приложения моей первой целью является следование структуре слоев Controller, Business and DAO. Play-Framework уже предоставляет базовую структуру приложения, и это действительно хорошо. Если мы используем MongoDB с Play-Framework, я нашел три типа драйверов MongoDB. Это как показано ниже:

  1. Модуль Mongo (https://www.playframework.com/modules/mongo-1.1/home< /а>)
  2. MongoHelper (https://gist.github.com/harmeetsingh0013/fdc9c20b056a62f303f5)
  3. ReactiveMongo(http://reactivemongo.org/)

ReactiveMongo, который отлично подходит для реализации неблокирующего ввода-вывода. В реактивном монго есть проблема с синхронизацией данных из нескольких запросов. У меня есть несколько запросов для создания примера приложения, как показано ниже:

  1. Моя первая цель — реализовать MVC с использованием ReactiveMongo, который, я думаю, ReactiveMongo-Extension предоставит мне Dao слой. Но я все же хочу подтвердить, ReactiveMongo-Extension хороший подход? или мне нужно пойти на MongoHelper? В чем преимущество Mongo-Module перед реактивным монго?
  2. Для внедрения зависимостей нам нужно выбрать Spring-Dependency Injection или Guice или другой Scala Dependency Injection Framework?
  3. Если я выбираю ReactiveMongo, нам нужно выбрать JSONCollection, потому что BSONCollection — это зависимость от MongoDB. Какая поддержка доступна для JSONCollection?

person Harmeet Singh Taara    schedule 31.03.2015    source источник
comment
BSONCollection взят из библиотеки ReactiveMongo BSON. Даже если вы решили использовать обмен данными JSON, BSONCollection будет там (в ядре RM).   -  person cchantep    schedule 31.03.2015
comment
Обратите внимание, что скоро выйдет ReactiveMongo 0.11 с новой поддержкой ReactiveStreams (с реализациями для Iteratee и AkkaStreams), SSL на стороне клиента и другими функциями.   -  person cchantep    schedule 01.04.2015
comment
Спасибо @cchantep за информацию.   -  person Harmeet Singh Taara    schedule 01.04.2015
comment
Если вам интересно, вот личный пример использования прототипа Akka Stream: github.com/cchantep/RM-AkkaStreams/blob/master/src/test/scala/   -  person cchantep    schedule 01.04.2015
comment
@cchantep последний коммит в ReactiveMongo был 15 дней назад. Почему так медленно развивается? Я собираюсь отказаться от ReactiveMongo-Extensions.   -  person fcs    schedule 01.04.2015
comment
@fcs Последний коммит на PR всего несколько дней назад (конец прошлой недели). Я бы назвал это медленным. Думаю, это можно обсудить в группе Google.   -  person cchantep    schedule 01.04.2015


Ответы (1)


Текущий репозиторий модулей на playframework.com предназначен только для Play 1.x. Так что модуль Mongo вам не подходит.

Я автор ReactiveMongo-Extensions, и он очень вдохновлен MongoHelper. Вы можете использовать тот, который вы хотите. Если вы выберете ReactiveMongo-Extensions, JsonDao станет вашим другом. Существует также пример приложения, которое вы можете проверить: https://github.com/mertkavi/play-reactivemongo-extensions-sample

Кстати, в настоящее время я разрабатываю новый драйвер с нуля. Вы также можете попробовать: https://github.com/fehmicansaglam/tepkin

person fcs    schedule 31.03.2015
comment
Спасибо @fcs, это означает, что для уровня DAO ReactiveMongo-Extensions это хороший вариант. Но дело в том, что ReactiveMongo-Extensions является частью ReactiveMongo драйвера? Вы работаете над новыми драйверами, в чем разница между ReactiveMongo и Tepkin? - person Harmeet Singh Taara; 01.04.2015
comment
ReactiveMongo и Тепкин разделяют много идей. Но главное отличие заключается в том, что ReactiveMongo использует Iteratees, а Tepkin построен на Akka Streams. Akka Streams будет использоваться по умолчанию в следующих версиях Play. - person fcs; 01.04.2015
comment
Это хорошо. Спасибо за вашу большую поддержку. Основная проблема заключается в том, какая на самом деле поддержка ReactiveMongo-Extensions или Tepkin есть. Как я на самом деле заставляю своих пожилых людей продвигать эту технологию? - person Harmeet Singh Taara; 01.04.2015
comment
эй, @fcs, если хотите, присоединяйтесь к нашему чату для обсуждения, если позволите. chat.stackoverflow.com/rooms/73074/ - person Harmeet Singh Taara; 01.04.2015
comment
@HarmeetSinghTaara К сожалению, у меня нет времени присоединиться к этой комнате. Но я активно участвую в тепкинском чате. Там есть и другие полезные разработчики. gitter.im/fehmicansaglam/ - person fcs; 01.04.2015
comment
Спасибо @fcs за ваш грязный чат. - person Harmeet Singh Taara; 01.04.2015