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