私たちは Java で Web ベースのアプリケーションを作成しており、どのデバイスからでもアクセスできる必要があるため、REST ベースの Web サービスのニーズに対応するために Restlet に焦点を合わせました。UI については、Freemarker と Twitter のブートストラップを併用することを考えており、データベースは mongoDB になります。そして、依存性注入のガイダンス。私はこれらのテクノロジースタックのほとんどに慣れていないので、これは長期的には公正な選択だと思いますか. また、データベース マッパー フレームワークには、軽量に見える Jongo を使用することにしました。Kundera はオプションですが、多くの依存関係があります。あなたの専門家は何を言いますか?
3 に答える
「Kundera はオプションですが、多くの依存関係があります。」この発言の意味がわからない?もっと説明してもらえますか?Kundera を使用したパフォーマンスについては、https://github.com/impetus-opensource/Kundera/wiki/Kundera-Mongo-performanceをご覧ください。
それは本当にあなたのニーズに依存します
REST フレームワーク:
IHMO では、少なくとも 3 つの JAX-RS フレームワーク (RestEasy / Jersey / Restlet) をテストし、必要に応じて選択する必要があります。
https://stackoverflow.com/questions/1710199/which-is-the-best-Java-rest-api-restlet-or-jersey
UI :
Nuxeo のWebengineというフレームワークを介して Jersey + Freemarker を使用しましたが、問題ありませんでした。
それでも、Javascript/CSS/HTML に基づくリッチ クライアント アプローチを検討する必要があります (Backbone.js、Ember.js を参照)。
長所: このようなアプローチでは、(freemarker/html サービスの代わりに) JAX-RS フレームワークを使用して JSON REST サービスを公開できます。これらのサービスは、Web アプリケーションやネイティブ モバイル アプリ (ios、android) で利用できます。
短所: チームには高度な JavaScript スキルが必要です (このブログが役立ちます)
データベース :
どのような種類のデータを保存する必要がありますか?
MongoDB はドキュメント指向であり、多くのニーズをカバーするのに十分な柔軟性があります
あなたが言ったように、Jongoは mongo-java-driver 上の軽量 API (500 行のコード + 1 つの依存関係) です。
これにより、MongoShell を使用しているかのように MongoDB にクエリを実行し (つまり、単純な json/bson クエリを使用)、jackson を使用してオブジェクトをマップできます。この質問は良い例です: Java での Mongo DB クエリ
RESTful Web API/サービス バックエンドを Restlet Framework に依存することは、マルチデバイス アプリケーションに適しているように思えます。FreeMarker は非常に強力で柔軟なので、そこにも良い仲間が必要です。
あなたのスタックの他の部分についてはあまり知りません。