私は中規模のWebアプリケーション4-5タブで作業しています。約100,000人のユーザーのユーザーログインです。我々は、アプリケーションを最初から再設計し、春と冬眠を使用してMySQLに接続します。SpringとHibernateのWebアプリケーションで成功しました
あなたは大きな問題を抱えていましたか、そしてSpringがアプリケーションにとってどのようなメリットをもたらしましたか?
私は中規模のWebアプリケーション4-5タブで作業しています。約100,000人のユーザーのユーザーログインです。我々は、アプリケーションを最初から再設計し、春と冬眠を使用してMySQLに接続します。SpringとHibernateのWebアプリケーションで成功しました
あなたは大きな問題を抱えていましたか、そしてSpringがアプリケーションにとってどのようなメリットをもたらしましたか?
重要な問題はありません。 Hibernateは
明らかに、このようなアプリケーションをJavaフレームワークの世界とRailsやDjangoの両方で構築する方法は数百万もあります。
私にとって大きなセールスポイントは、春と冬眠の両方がJavaの世界でデファクトスタンダードになっていることです。したがって、彼らは間違いなく「知るべきもの」(私はすべての就職面接で尋ねられます)となります。 Hibernateよりも春になる。
バネの価値を得ることは、私にとって意味をなさない前に、いくつかのバネ対応アプリを使いました。独立したコードモジュールとテストを容易にする特定のスタイルのコンポーネントデザインを強制します。私はちょうどそれと一緒に行くと、使用からその価値の感覚を得ることをお勧めします。
私はHibernateについて何か気になりましたが、何らかの種類のdbレイヤーを使用することが重要です。
を休止使用することができ、私は両方の春(例えば@Controller)のための新しいスタイルのアノテーションに焦点を当て、休止状態となる(例えば@Entity) 。コードベースをさらに減らし、コードを少なくして管理します。欠点は非常に重要な学習曲線ですが、最終的に私が何度も学ぶことは、Spring + Hibernateの利点が(学習曲線)コストをはるかに上回ることです。あなたは単にビジネスに集中できるようにコードを書く必要がありません。
+1春+休止......
100kのユーザーはそれが巨大である....ミッドサイズではありません。
春では、コーダーにコードをインターフェイスに強制することができ、これによってテスト容易性が向上します。これは、人々が多く話すのを聞いていないメリットです。ジュリアンChastangが言ったように
あなたはこれがあなたの最初のプロジェクトであれば、あなたの推計で学習曲線を考慮にする必要があり、キャッシュされたデータ memcached .....にルックのmemcachedを取ります。Hibernateのいくつかの側面が把握するのが「難しい」(たとえば時間がかかったなど)ため、最初の試行では失敗し、多くの計画を調整する必要がありました。
複雑なSQLを記述する必要がある場合に、HQL内でそのようなクエリを動作させる方法を理解する時間を費やしたくない場合や、 Hibernate内の他の製品は、最初にvanilla SQLで動作させてから、後で戻ってHibernateに戻してください。
特定のオブジェクトをリレーショナル・マッピングに作成する、または特定のHQL問合せを作成することは非常に難しい場合があります。しかし、あなたは10のうちの1のようなものにぶつかるつもりです。あなたのデータベースはより正常化されます。価値があります。
新しいJava Webプロジェクトでは、Spring MVC(注釈付き2.5+)とHibernateを使用する必要があります。
休止状態と春に大きな理解のオーバーヘッドがあります。私は多くの時間や経験豊富なJava/Spring/Hibernateの開発者がいる場合にのみ提案します。一度あなたがそれを得ることを得る春のプロジェクトでは、基本的にそれの春の部分を無視し、ページとロジック設計に集中することができます。休止状態はそれほど難しいことではありません。 HQLは難しい質問です。私の時間のほとんどは、BeanとJSFレベルで費やされています。私のプロジェクトの層をJSPで混乱しているいくつかの仲間と比較すると、私はJSFを使いやすくなってうれしいです。私はMySQLの初期実装からOracleに簡単にスワップしました。これは、Hibernateが抽象化をうまく処理することを証明しています。
私は、春、冬眠、およびその両方を使用して、数千から数十万の数の商用アプリケーションを導入しました。
私は良い技術者だったチームを持っていたので、春と冬眠のアプリを書き直すことができました。しかし、彼らはインターフェイスに夢中になりました。 AOPを悪用し、トランザクションとロギングがほとんど不可能で、トレースをスタックすることは無意味でした。実行中のことを完全に理解せずにハイバネートファイルをマップするツールを使用しました。シンプルエンティティ、および強化する結果として、アプリケーションがはるかに困難に作られたさまざまな問題、デバッグ、修正、でもセットアップ開発者の環境....)
私の2cを
これまで説明したことに加えて、私は非常に良いオンラインドキュメントと組み合わせて、Spring Recipes - Problem Solution Approach (Amazon)という本を強く示唆します:-)
100Kユーザーと同時に、それは質問です;) – krosenvold
あなたは正しいです! –