1

この投稿を参考にして、新しいWebベースのJavaプロジェクトを開始することを検討しています。Spring / Hibernateがわからないので、新しいプロジェクトの作成中にそれらを学び始めるのが悪い計画であるかどうか、特に初期の開発が遅くなるため、心配していました。

私が持っていたアイデアの1つは、私知っている技術、つまりJSP/サーブレット/JDBCを使用してプロトタイプを作成することでした。これは、現在の知識でこれをはるかに高速に実行できるためです。その後、すべてを破棄してSpringなどからやり直すこともできますが、小さいプロジェクトをJSP / Servlets/JDBからSpringMVC/Hibernateにリファクタリングするのがどれほど簡単かを検討したいと思います。私のDBはもちろん再利用できますが、他のコードはどうでしょうか...そのほとんどをMVCフレームワークにプラグインして保存することを期待しますか、それともパラダイムシフトが十分に大きいため、回避するよりも多くの問題が発生しますか?


テクノロジーの選択に関するより一般的なアドバイスについては、他の質問を使用してください

4

4 に答える 4

3

Spring から始めて、その JDBC テンプレートを使用し、Hibernate が機能するまでそのままにしておくことをお勧めします。

Spring はインターフェースの使用を推奨します。つまり、実装をメソッド シグネチャから分離します。Spring ですべてを起動して実行し、準備ができたら、JDBC DAO を Hibernate に相当するものに交換できます。

一度に 1 つのことしか処理できません。あなたもそうなら、私のアドバイスに従い、Spring だけから始めてください。

于 2010-05-25T12:15:30.557 に答える
1

@duffymo のアドバイスに +1。Hibernate はまったくの別物であり、SQL のコーディングに慣れている人が ORM ツールに切り替えるのは特に困難です。つまり、Hibernate が私の「すばらしい」SQL コードよりも優れた仕事をしてくれるとは信じていなかったので、Hibernate ですべての作業を快適に行えるようになるまでにしばらく時間がかかりました。しかし、時間が経つにつれて、適切に構成されていれば、 Hibernate がうまく機能していることを受け入れるようになりました。:)

@john、@duffymo が述べたように、最初に JSP + Servlet + Spring から始めます。Spring の JbcTemplate を使用するように DAO クラスを変換します。これにより、既存の DAO クラスのインターフェイスを作成する必要があります。DAO クラスがステートレスであることを確認してください。これにより、テストケースで簡単にテストできます。

サーブレットがこれらの DAO を利用するには、次のようなことを行う必要があります...

ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
SomeDao dao = (SomeDao) ctx.getBean("someDao");
dao.doStuff(..);

DAO を取得するための「少し醜い」コードの理由は、この時点で Spring がサーブレットを管理していないため、Spring が DAO をサーブレットに直接接続できないためです。

このすべてが機能するようになったら、Spring の IoC がどのように機能するかについてある程度理解する必要があります。これで、サーブレットを交換して Spring MVC に置き換えることができます。Web パーツを安らかに構築できるように、Spring MVC 3.x を使用することをお勧めします。私の正直な意見では、Spring MVC 2.x よりもはるかに簡単でクリーンです。

さて、JSP + Spring MVC + Spring + JdbcTemplate が動作するようになったら、データベース モジュールを JdbcTemplate から Hibernate に交換する良い機会になると思います。インターフェイスごとにコーディングするため、他のモジュールへの波及効果はありません。さらに、まったく同じテストケースを再利用して、Hibernate DAO クラスのがらくたをテストできます。甘い。:)

...そして、それがJSP + Spring MVC + Spring + Hibernateで終わる方法です。:)

このすべてを小さなチャンクに分割すると、学習と消化がずっと簡単になります。少なくとも、開発中に問題が発生し始めたとき、問題を理解しようとして悪口のボキャブラリーを間接的に改善することはありません。

于 2010-05-25T19:45:10.337 に答える
0

Spring/Hibernate を使用しないか、すぐに使用することをお勧めします。

Hibernate だけでなく Spring も、データのモデリングとフローにかなりの影響を与えます。JSP/JDBC から Spring/Hibernate へのアプリケーションの移植は、特にトランザクション境界を考慮に入れ始めると、必ずしも容易ではない場合があります。

私の個人的なアドバイスは、適切な Hibernate + Spring の本を入手して、そこから始めることです。

于 2010-05-25T11:16:11.553 に答える
0

優れたプログラミング手法に従えば、変換は簡単です。サーブレットはコントローラになり、jsp はビューになるためにそのまま再利用できます。もちろん、JSP にビジネス ロジックを含めるようなことを行っている場合は、変換を行うのがより難しくなります。データ抽象化レイヤーが既にある場合も同様です。

これは興味深い実験であり、Hibernate と Spring の利点をよりよく理解するのに役立ちます。これらのテクノロジーが提供する多くのことを、あなたはすでに自分で難しい方法で行っていることに気付くかもしれません。

于 2010-05-25T11:22:05.437 に答える