Jump to section

Java フレームワークとは

URL をコピー

Java™ フレームワークは事前に記述されたコードの集合体で、開発者が Java プログラミング言語によるアプリケーション作成に使用します。

Java フレームワークは、Java プログラミング言語に固有のものであり、ソフトウェア・アプリケーションや Java プログラムを開発するための Java プラットフォームです。

Java フレームワークは、事前に記述された再利用可能なコードであり、必要に応じてカスタムコードを入力することによって、開発者がアプリケーション作成に使用できるテンプレートとして動作します。

フレームワークは繰り返し使えるように作られており、開発者は、あらゆるものを最初から手作業で作成する手間をかけずに、アプリケーションをプログラミングすることができます。

Java フレームワークには、ハードウェアデバイスの処理、入力、管理、およびシステムソフトウェアとのやりとりに使用できる事前定義済みのクラス (オブジェクトのカテゴリなど) と関数が含まれることがあります。これは、フレームワークのタイプ、Java 開発者のスキルレベル、目的、好みによって異なります。

Java はオブジェクト指向プログラミング (OOP) 言語であり、1995 年から使用されています。開発者は Java を使用して、所属するドメイン内で動作するようにアプリケーションをプログラミングします。

Java と JavaScript を混同しないように注意してください。JavaScript は、同じ時期に別の会社が開発した別のプログラミング言語です。Java 開発では、ブラウザあるいはサーバーのベアメタルマシン、仮想マシン、またはコンテナで実行できるアプリケーションを作成します。JavaScript はブラウザでのみ実行されます。

ライブラリはアプリケーションの一つの機能です。フレームワークはアプリケーションのスケルトンです。API は両者をつなげてユーザーが利用できるようにします。フレームワークには、ライブラリ、コンパイラー、および開発プロセスで使用されるその他のプログラムが含まれる場合があります。優れたフレームワークがあれば、開発者はドメインやアプリケーション全体で繰り返し使用されるコードを気にかける必要がありません。

ライブラリ

ライブラリは、コンピュータープログラムで使用可能な、頻繁に使われるプリコンパイルされたルーチンまたはリソース (クラス、テンプレート、構成データなど) のコレクションです。関数を実行するタスクが発生するごとにコードを記述するのではなく、ルーチンを作成して、タスクを実行する必要があるときにそれを呼び出します。リソースが必要な場合は、プログラムはライブラリからそれを呼び出します。

フレームワーク

ライブラリのコレクションをフレームワークと呼ぶことができます。両者の主な違いは制御の反転です。つまり、フレームワークがアクションの呼び出しを制御しています。フレームワークには、必要なもののテンプレートやフレームがすでに備わっています。つまり、すでにそこにあるもの (入力が必要なコードの空欄部分) に基づいて、必要なリソースを呼び出すことができます。

アプリケーション・プログラミング・インタフェース

フレームワークは、アプリケーション・プログラミング・インタフェース (API) に似ています。技術的には、API はフレームワークの一部です。フレームワークはプログラミングの基盤であり、API はフレームワークがサポートする要素へのアクセスを提供します。

Java とクラウドネイティブについてさらに詳しく知る

Java フレームワークは複数あります。どれを使用するかは、開発者のスキルセットとアプリケーション、またはウェブサイトの要件によって決まります。一般的なオープンソース・フレームワークには次のようなものがあります。

  • Quarkus はフルスタックの Java フレームワークであり、クラウドネイティブマイクロサービスベースのインフラストラクチャでの使用に適しています。
  • Grails は Groovy プログラミング言語で記述されていて、Web アプリケーション・フレームワークに HTML および CSS プラグインのビューを提供します。
  • Hibernate は、リレーショナル・データベース管理に使用されるオブジェクト/リレーショナル・マッピング (ORM) フレームワークであり、Java Database Connectivity (JDBC) が提供する API によって SQL クエリを実行できます。
  • Google Web Toolkit (GWT) は、フロントエンド/クライアントサイドとバックエンドのソフトウェア開発チームをつなぎます。

その他の一般的な Java フレームワークは次のとおりです。

  • Vaadin は、ユーザー・インタフェースに焦点を当てたフレームワークです。
  • Play は、Web アプリケーション開発を効率化し、Scala プログラミング言語に適しています。
  • Apache Struts は、エンタープライズ向けアプリケーションに焦点を当てており、非同期の JavaScript および XML (AJAX) 手法に適しています。Web ページセクションを更新する際にすべてを再読み込みする必要がないので便利です。
  • Oracle の JavaServer Faces (JSF) は、バックエンドの開発者にフロントエンドのフレームワークを提供します。

Java 仮想マシン (JVM) およびネイティブコンパイルのために作成された Kubernetes ネイティブの Java スタックで、特に Java を Kubernetes 向けに最適化し、サーバーレスクラウド、Kubernetes の各環境で効果的なプラットフォームとして使用できるようにします。

Quarkus のディペンデンシーインジェクション (依存性の注入) ソリューションはコンテキストと依存性注入 (CDI) をベースとし、拡張フレームワークを備えているので、機能の拡張、およびフレームワークの設定、起動、アプリケーションへの統合が可能です。拡張機能の追加は依存性の追加と同様に容易で、Quarkus ツールを使用できます。

関連資料

記事

ステートフルとステートレス

あるものがステートフルかステートレスかは、別の何かとの通信の状態が記録される期間と、その情報をどのように保存する必要があるかによって決まります。

記事

Quarkus とは

Quarkus は、Java 仮想マシン (JVM) およびネイティブコンパイルのために作成された Kubernetes ネイティブの Java スタックで、Java をコンテナに最適化します。

記事

サーバーレスとは

サーバーレスは、開発者がサーバーを管理する必要なくアプリケーションを構築および実行できるようにするクラウドネイティブ開発モデルです。

クラウドネイティブ・アプリケーションの詳細はこちら

製品

Red Hat OpenShift

エンタープライズ対応の Kubernetes コンテナ・プラットフォームで、ハイブリッドクラウド、マルチクラウド、エッジのデプロイメントを管理するフルスタックの自動運用機能を備えています。

リソース

トレーニング

無料のトレーニング

Developing Cloud-Native Applications with Microservices Architectures

Illustration - mail

その他の関連コンテンツ

無料のニュースレター「Red Hat Shares」(英語) では、注目の IT トピックスに関するコンテンツをお届けしています。