概要
Java™ フレームワークは事前に記述されたコードの集合体で、開発者が Java プログラミング言語によるアプリケーション作成に使用します。
Java フレームワークは、Java プログラミング言語に固有のものであり、ソフトウェア・アプリケーションや Java プログラムを開発するための Java プラットフォームです。
Java フレームワークは、事前に記述された再利用可能なコードであり、必要に応じてカスタムコードを入力することによって、開発者がアプリケーション作成に使用できるテンプレートとして動作します。
フレームワークは繰り返し使えるように作られており、開発者は、あらゆるものを最初から手作業で作成する手間をかけずに、アプリケーションをプログラミングすることができます。
Java フレームワークには、ハードウェアデバイスの処理、入力、管理、およびシステムソフトウェアとのやりとりに使用できる事前定義済みのクラス (オブジェクトのカテゴリなど) と関数が含まれることがあります。これは、フレームワークのタイプ、Java 開発者のスキルレベル、目的、好みによって異なります。
ライブラリ、フレームワーク、アプリケーション・プログラミング・インタフェース
ライブラリはアプリケーションの一つの機能です。フレームワークはアプリケーションのスケルトンです。API は両者をつなげてユーザーが利用できるようにします。フレームワークには、ライブラリ、コンパイラー、および開発プロセスで使用されるその他のプログラムが含まれる場合があります。優れたフレームワークがあれば、開発者はドメインやアプリケーション全体で繰り返し使用されるコードを気にかける必要がありません。
ライブラリ
ライブラリは、コンピュータープログラムで使用可能な、頻繁に使われるプリコンパイルされたルーチンまたはリソース (クラス、テンプレート、構成データなど) のコレクションです。関数を実行するタスクが発生するごとにコードを記述するのではなく、ルーチンを作成して、タスクを実行する必要があるときにそれを呼び出します。リソースが必要な場合は、プログラムはライブラリからそれを呼び出します。
フレームワーク
ライブラリのコレクションをフレームワークと呼ぶことができます。両者の主な違いは制御の反転です。つまり、フレームワークがアクションの呼び出しを制御しています。フレームワークには、必要なもののテンプレートやフレームがすでに備わっています。つまり、すでにそこにあるもの (入力が必要なコードの空欄部分) に基づいて、必要なリソースを呼び出すことができます。
アプリケーション・プログラミング・インタフェース
フレームワークは、アプリケーション・プログラミング・インタフェース (API) に似ています。技術的には、API はフレームワークの一部です。フレームワークはプログラミングの基盤であり、API はフレームワークがサポートする要素へのアクセスを提供します。
Java とクラウドネイティブについてさらに詳しく知る
一般的な 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) は、バックエンドの開発者にフロントエンドのフレームワークを提供します。
Quarkus:フルスタックの Java フレームワーク
Java 仮想マシン (JVM) およびネイティブコンパイルのために作成された Kubernetes ネイティブの Java スタックで、特に Java を Kubernetes 向けに最適化し、サーバーレス、クラウド、Kubernetes の各環境で効果的なプラットフォームとして使用できるようにします。
Quarkus のディペンデンシーインジェクション (依存性の注入) ソリューションはコンテキストと依存性注入 (CDI) をベースとし、拡張フレームワークを備えているので、機能の拡張、およびフレームワークの設定、起動、アプリケーションへの統合が可能です。拡張機能の追加は依存性の追加と同様に容易で、Quarkus ツールを使用できます。