2

私はほぼ 10 年前に Java を学びましたが、ほとんどの場合、C、C++、およびコア Java (エンタープライズ アプリケーションの作成ではありません) で働いてきました。今、私はエンタープライズ版で働き始めました。最初の数日間、物事がどのように機能していたかについて、いくつかの疑問があります。

Web アプリケーションがどのように機能していたかを理解しようとしています。私の理解では、Web アプリケーションの作成に使用される主なテクノロジーは、Web コンテナー (Apache Tomcat) にデプロイされたサーブレット/JSP (Spring MVC 、ストラットなどの上位の高度な抽象化を考慮していません) です。

さて、これらを使用して、トランザクション サポートをどのように処理するのでしょうか? 私の理解では、Web コンテナーはトランザクションをサポートしていません。ということは、最初はトランザクション サポートが明示的なコーディングによるものだったということですか? (ここでのトランザクションは、データベース トランザクション/分散トランザクションを参照しています)。もしそうなら、これはどれほど堅牢でしたか?

これを理解するための情報は非常に役立ちます。

4

1 に答える 1

1

実際、Tomcat のようなベアボーン サーブレット コンテナは、いかなる形式のトランザクション管理もサポートしていません。基本的に 3 つのオプションがあります。

  1. トランザクションを手動で管理します (JDBC、Hibernate、および JPA で実行できます)。
  2. または、そのためにSpringを使用してください。
  3. または、Tomcat を実際の Java EE サーバーに置き換えて、EJB/JTA を使用できるようにします。例えばTomEE。

これは、「初期の J2EE の時代」だけでなく、現在でも非常に当てはまります。ただ、J2EE の EJB 2.x はひどい API であり、Spring が好まれることが多くなりました。Java EE 5 (2006) 以降、EJB 3.x は Spring から学んだ教訓に基づいて大幅に改善されたため、実際の Java EE サーバーで EJB をすぐに利用できる場合、Spring に取って代わる理由はありません。Tomcat に固執している人 (顧客やホスティングの制限など) だけが、通常、Spring 以外にトランザクション管理を簡単にする選択肢がありません。

以下も参照してください。

于 2016-03-03T19:16:10.667 に答える