検索
ホームページJava&#&チュートリアルJavaの3つの主要なフレームワークとは何ですか

Struts、Hibernate、Spring は Java 開発でよく使用されるキーであり、さまざまなアプリケーション シナリオに最適なソリューションを提供します。しかし、これらの有名なフレームワークがもともとどのようにして生まれたかご存知ですか?

推奨コース: Java チュートリアル

Javaの3つの主要なフレームワークとは何ですか

従来の Java Web アプリケーションは、JSP サーブレット Javabeans を使用して実装されていることはわかっています。このモデルは、最も基本的な MVC 階層化を実装し、プログラム構造を次のようないくつかの層に分割します。フロントエンド表示を担当する JSP、プロセス ロジック制御を担当するサーブレット、データのカプセル化を担当する Javabean。ただし、この構造にはまだ問題があります: たとえば、JSP ページでは、多くの Java コードを埋め込むためにシンボルを使用する必要があり、その結果、ページ構造が混乱してしまいます。サーブレットと Javabean は、多くのジャンプと計算、密結合、プログラムの再利用性が低いなど。

Java の 3 つの主要なフレームワークは次のとおりです:

1. Struts

これらの問題を解決するために、Strutsフレームワークが登場しました, これは完璧な MVC 実装です. 中央制御クラス (サーブレット) があります. さまざまなビジネスのために, ページ ジャンプとバックグラウンド ロジック操作を担当する Action クラスと、1 つまたは複数の JSP ページが必要ですデータの入力と出力の表示を担当します。また、Action と JSP の間でデータの受け渡しを担当する Form クラスもあります。 Struts フレームワークによって提供されるタグのセットは JSP で使用でき、HTML タグを使用するのと同じくらい簡単ですが、非常に複雑なロジックを完成させることができます。今後は、JSP ページ内で Java コードを囲む行を含める必要はなくなります。

ただし、すべての操作ロジックを Struts の Action に配置すると、Action クラスの再利用性が低くなり、ロジックがわかりにくくなるため、Web アプリケーション全体を 3 つの層に分けることが一般的です。Struts は表示層を担当します。ビジネス層は操作ロジックを完了するために呼び出され、次にビジネス層は永続化層を呼び出してデータベースの読み取りと書き込みを完了します。

JDBC 接続を使用してデータベースの読み取りと書き込みを行います。最も一般的なことは、データベース接続を開き、複雑な SQL ステートメントを使用して読み取りと書き込みを行い、接続を閉じることです。取得したデータは変換する必要がありますまたはカプセル化して外部に送信するなど、非常に面倒なプロセスです。

2. Hibernate

Hibernate フレームワークがこの時点で表示され、一連の永続クラスを作成する必要があります。各クラスの属性は次のように単純に表示できます。データベーステーブルの属性と1対1に対応しており、もちろんリレーショナルデータベースの各種テーブルファイルと関連付けることも可能です。関連する操作が必要な場合、データベース テーブルに注意を払う必要はなくなります。データベースを 1 行ずつクエリする必要はなくなり、永続クラスだけで追加、削除、変更、クエリの機能を完了できます。ソフトウェア開発を、煩雑なコード指向ではなく真のオブジェクト指向にします。私の感覚では、Hibernate を使用すると、JDBC と比較してプログラミングの量が 80% 削減されます。

今、3 つの層がありますが、各層間の呼び出しは何でしょうか?たとえば、表示レイヤーの Struts がビジネス クラスを呼び出す必要がある場合は、新しいビジネス クラスを作成してそれを使用する必要があり、ビジネス レイヤーが永続レイヤー クラスを呼び出す必要がある場合は、新しい永続レイヤーも作成する必要があります。クラス。この新しい方法でお互いを呼び出すことは、ソフトウェア開発における最悪の設計の具現化です。簡単に言うと、呼び出し元と呼び出し先との間には強い結合が形成されており、あるクラスを別の場所で再利用したい場合には、そのクラスが依存している他のクラスも含める必要があります。プログラムは非常に複雑になり、各クラスは相互に依存し、相互に呼び出し、再利用性は非常に低くなります。クラスが変更されると、そのクラスに依存する多くのクラスが影響を受けます。この目的のために、Spring フレームワークが登場します。

3. Spring

Spring の機能は、クラス間の依存関係を完全に分離することです。クラスが何かに依存している場合、それはインターフェイスです。このインターフェースをどのように実装するかについては、問題ではありません。このインターフェイスを実装するクラスを取得すれば、xml 構成ファイルを介してインターフェイスを呼び出すクラスに実装クラスを簡単に挿入できます。すべてのクラス間のこの依存関係は、構成ファイルによって完全に置き換えられます。したがって、Spring フレームワークの中核は、いわゆる依存関係の注入と制御の反転です。

現在の構造は、Struts が表示層を担当し、Hibernate が永続層を担当し、Spring が中間ビジネス層を担当するというもので、この構造は現在中国で最も人気のある Java Web アプリケーション アーキテクチャです。 。また、Spring は依存性注入と AOP (アスペクト指向プログラミング) を使用しているため、その内部モデルが非常に優れており、Spring 自体も Spring MVC と呼ばれる依存性注入を使用した MVC フレームワークを実装しています。 Spring には Hibernate が統合されており、これによりトランザクション管理が Hibernate の永続層からビジネス層に昇格され、より便利かつ強力に使用できるようになります。

Struts フレームワークは 2000 年に開始され、そのテクノロジは非常に成熟しており、現在、Struts フレームワークは世界的な Java 開発における表示レイヤ テクノロジの明白な王様です。大規模なユーザーベースと優れた開発チームを持っています。これは、ほとんどの国内 Java ソフトウェア会社の新入社員に対する基本要件でもあります。 #########他の######

Java という用語は、オープン ソースと密接に関連付けられているようです。Java の世界では、毎日多数のオープン ソース テクノロジが登場しています。オープン ソースであるため、テクノロジの問題や欠陥はすぐに発見されます。オープンソース ソフトウェア プロバイダーはこれらのテクノロジをすぐに変更または拡張するため、バージョンはすぐに更新され、数週間または数日で新しいバージョンがリリースされます。

技術分野で Java を選択するとき、私たちは、学習を継続し、常に最新のテクノロジに注意を払い、それらを理解し、ニーズに合うかどうかを確認し、その使用方法を学ぶ必要があることも選択します。

Java の SSM との組み合わせも非常に優れており、誰でも学ぶことができます。

以上がJavaの3つの主要なフレームワークとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

分散コンピューティングにJavaのRMI(リモートメソッドの呼び出し)を使用するにはどうすればよいですか?分散コンピューティングにJavaのRMI(リモートメソッドの呼び出し)を使用するにはどうすればよいですか?Mar 11, 2025 pm 05:53 PM

この記事では、分散アプリケーションを構築するためのJavaのリモートメソッドの呼び出し(RMI)について説明します。 インターフェイスの定義、実装、レジストリのセットアップ、およびクライアント側の呼び出しを詳述し、ネットワークの問題やセキュリティなどの課題に対処します。

ネットワーク通信にJavaのソケットAPIを使用するにはどうすればよいですか?ネットワーク通信にJavaのソケットAPIを使用するにはどうすればよいですか?Mar 11, 2025 pm 05:53 PM

この記事では、ネットワーク通信のためのJavaのソケットAPI、クライアントサーバーのセットアップ、データ処理、リソース管理、エラー処理、セキュリティなどの重要な考慮事項をカバーしています。 また、パフォーマンスの最適化手法も調査します

Javaでカスタムネットワークプロトコルを作成するにはどうすればよいですか?Javaでカスタムネットワークプロトコルを作成するにはどうすればよいですか?Mar 11, 2025 pm 05:52 PM

この記事では、カスタムJavaネットワーキングプロトコルの作成を詳述しています。 プロトコルの定義(データ構造、フレーミング、エラー処理、バージョン化)、実装(ソケットを使用)、データシリアル化、およびベストプラクティス(効率、セキュリティ、メンテナ

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境