Мы создаем веб-приложение на Java, которое должно быть доступно любому устройству, и поэтому мы обнуляем для Restlet для нашей службы веб-службы, основанной на REST. Для пользовательского интерфейса мы думаем о Freemarker вместе с загрузочным блоком Twitter, а база данных будет mongoDB. И образ для инъекции зависимости. Поскольку я новичок в большинстве этих стеков технологий, вы считаете, что это справедливый выбор в долгосрочной перспективе. Кроме того, для базы данных mapper framework мы решили использовать Jongo, это кажется легким. Kundera - вариант, но у него много зависимости. Что вы, эксперт, говорите?Restlet + mongoDB + Freemarker
ответ
Опираясь на Restlet Framework для вашего веб-интерфейса API/службы веб-сервиса RESTful, это хороший выбор для приложения с несколькими устройствами. FreeMarker очень мощный и гибкий, поэтому вы также должны быть в хорошей компании.
Я не знаю слишком много о других частях вашего стека.
«Kundera - вариант, но у него много зависимости». Не знаете, что вы подразумеваете под этим заявлением? не могли бы вы объяснить это больше? Пожалуйста, взгляните на https://github.com/impetus-opensource/Kundera/wiki/Kundera-Mongo-performance для исполнения с помощью Kundera!
Это действительно зависит от ваших потребностей
REST Framework:
ИХМО вы должны проверить по крайней мере тезисах 3 JAX-RS рамочные: Resteasy/Джерси/Restlet и выбрать тот, в соответствии с вашими потребностями.
https://stackoverflow.com/questions/1710199/which-is-the-best-java-rest-api-restlet-or-jersey
UI:
Я работал с Джерси + Freemarker через рамки под названием Webengine от Nuxeo, это было нормально.
Тем не менее, следует учитывать богатый клиентский подход, основанный на JavaScript/CSS/HTML (см Backbone.js, ember.js)
Плюсы: При таком подходе вы могли бы предоставлять сервисы JSON REST с помощью JAX- RS Framework (вместо служб freemarker/html). Тезисы могут быть использованы веб-приложениями и/или родными мобильными приложениями (ios, android).
Минусы: Ваша команда должна иметь дополнительные JavaScript навыки (это blog может помочь)
База данных:
Какие данные вам нужно хранить?
MongoDB является документо-ориентированной и достаточно гибкой, чтобы охватить множество потребностей
Как вы сказали, Jongo представляет собой легкий API (500 строк кода + 1 зависимость) над Монго-Java-драйвер.
Он позволяет запросить MongoDB, как если бы вы были в MongoShell (то есть с помощью простых запросов json/bson) и сопоставить свой объект с помощью jackson. Этот вопрос является хорошим примером: Mongo DB query in java
Спасибо за сообщение, этот ответ заставил меня чувствовать себя комфортно. – user1353436