最も新鮮な JConference の一部として配信された非常に際どいウェビナーで、Antoine Sabot-Durand は、J2EE/Jakarta と Spring の間の「敵意」と、数十年前から最も最近までのそれらの間の適応について話しました。
Antoine は Java チャンピオンです。 さらに、彼は CDI 2.0 仕様のリーダーであり、マイクロプロファイルに焦点を当て、CDI エコシステム パターンと Jakarta EE にリンクされたさまざまなプロジェクトに焦点を当てています。
彼の話は と呼ばれるようになりました。 J2EE vs Spring Infinity Battle は Cease Sport に達しましたか? 達成のための Java の短い歴史」 は、採用担当者の帽子をかぶったときに、ほとんどのジュニア開発者は絶対に知っているという彼の繰り返しの観察に後押しされました。 J2EE を完全に無視して、Spring をトップに置きます。 それは採用のハードルにはなりませんでしたが、J2EE とその後の化身である Jakarta が Java エコシステムの不可欠な部分であり、Spring の世界に完全に住んでいる間はその部分を無視することは、肥満体を描くことにはなりませんでした。
これにより、J2EE/Java EE/Jakarta – エンタープライズ環境で古くから確立された、複雑な、または絶対的な最上位脆弱性 – に言及する追加の誤解が上向きになりました。 これはおそらく以前のケースではうまくいった可能性がありますが、ショーケースの時点で事実を知るのは好きではありません.
それにもかかわらず、現実には、Spring はJPA などの Jakarta 仕様の一部を利用しているため、実際には、開発者は能力の起源を十分に理解することなく、カバーの下にある多数の仕様を発明しています。
議論は 2 つの応用科学に一致するようになり、このトピックに関する山のような古代の概説を提供し、この競争が最後に戦争. 、Spring が Java の世界に導入されたのは 2003 年にモデル 1.0 でした。 「J2EE はどうあるべきか」。 それはさらに大きく一貫性のあるプログラミング マネキンを誇示し、疎結合であり、カバーの下にはプロキシ フォーム サンプルが採用されており、そこではリフレクションを多用するプロキシ クラスが増加していました。
戦争が始まっていました。 . . .
J2EE は Java EE 5 でウェイトオンと戦ったEJB 3、RIP J2EE。 この現在のモデルは、疎結合にも通知し、アノテーションの利用と、ネットの目的とのより直接的な統合を開始します。 それでEJB3+NetアプリはCDI仕様に方法論を敷き詰めた.エコシステム。 その後、2014 年に Spring Boot マジックが発明されたときに、マイクロサービスの世代が登場し、利用されているマイクロサービスが注目を集めました。 痛み:それは強く独断的になりました。 その後、Java EE は成長して Jakarta EE になりました。
The Eclipse Foundation は、 Spring Boot は、2021 年に Microprofile を立ち上げ、マイクロサービスを作成するための仕様を提供しました。 Microprofile は、Jakarta RESTful Net Companies and products、Jakarta Contexts and Dependency Injection、Jakarta JSON Binding、および Jakarta JSON Processing の 4 つの Jakarta EE 仕様に大きく依存しています。
仕様について言えば、Jakarta EE 10 は、Java EE 8 以降のコア仕様を更新し、多くのインフラストラクチャ応用科学を支える主要なリリースです:
Apache Tomcat は、4 つの Jakarta EE 仕様を実装しています — Jakarta Servlet、Jakarta Customary Tag Library、Jakarta WebSocket、およびJakarta Authentication. Spring Boot はランタイムとして Apache Tomcat、Eclipse Jetty、または Undertow を組み込みます。 Eclipse Jetty は、Jakarta Servlet、Jakarta Server Pages、および Jakarta WebSocket 仕様を実装しています。
現在の API の収益を得る方法論である Spring の場合、Tomcat 10.1、Jetty 11、Undertow 2.3 を彷彿とさせる最新の Web コンテナーへのエントリーそして、Hibernate ORM 6.1 を連想させる最も新鮮な持続性サプライヤーです。 ああ、お得にjavaxからjakarta名前空間に移行。 ジャカルタはここでも現在のプロフィールを紹介して存在感を示しました。 プロファイルは、特定のクラスの目的を対象とした Jakarta EE プラットフォームの構成です。 Jakarta EE には Beefy と Net という 2 つのプロファイルがありました。
Net プロファイルは、REST、サーブレット、JSON、JPA、Safety を連想させる、洗練されたネット アプリケーションの挑発的な部分を対象とした一連の仕様で構成されています。 、顔。 Beefy プロファイルは、WebServices、Messaging、EJB などを対象とした確立された仕様で構成されています。
クラウドの機能については、現行のプロファイルであるコア プロファイルが提供されています。 これは、つまり、クラウドネイティブな Java マイクロサービスを動作させるために最適化された軽量ランタイムを目的としたプロファイルであり、フォワード オブ タイム コンパイルの利用を発明する実装を可能にすることに重点が置かれています。
さらに、メトロポリスの現在の参加者である Quarkus は、Microprofile を使用していましたが、AOT を希望するようになったため、Spring Boot で作業するのが苦手になった場合でも簡単に理解できるようになりました。 Quarkus は、Spring Boot が実行時に利用するようになった Reflection の大量利用を避けたため、クラウド上での作業操作に好まれるようになりました.
Spring の応答は、Spring ネイティブになりましたおそらく、その魔法はもはや実行時ではなく、AOT を賢く利用して静的コードを発行することでうまく機能します. それにもかかわらず、対話を締めくくる際に、アントワーヌは、これが完全に私たちが話している戦いなのかどうか疑問に思いました. 中断の中で、Spring と Jakarta の間の熾烈な競争は、完全な Java エコシステムに利益をもたらしました。 彼らは、Java がマイクロサービスおよびクラウド ネイティブ世代に遅れて参入したことを利用したエコシステムと同等、または過去にそれを導入しました.
その他のレコード
J2EE vs Spring Infinity BattleはCease Sportに達しましたか? 達成のための Java の短い歴史
Quarkus 2.7.1 リリース – なぜ Quarkus?
Jakarta EE 10 – クラウド上の Java の新しい世代
I Programmer に関する現在の記事を確認するには、 に参加してください。週刊メールマガジン, に登録するRSS フィード で練習してください
ツイッター、
.
フィードバック
またはあなたの意見を以下に電子メールで送ってください: feedback@i-programmer.files