Spring Framework を 5 分以内で説明
公開: 2022-12-28Spring Framework は、堅牢で高性能なアプリケーションを簡単に作成できる、強力なオープンソース Java アプリケーション開発フレームワークです。
オープンソースとは、ソースコードが自由に利用できるため、人々が自由にアクセス、変更、および共有できるものを指します。
オープンソース アプリケーション フレームワークは、ソフトウェア開発者のグループによって作成されたソフトウェア開発用のテンプレートです。 ユーザー インターフェイス、Web サイト、基本的なソフトウェア アプリケーションの作成など、さまざまな目的に使用されるさまざまな種類のテンプレートが存在します。
アプリケーション開発に慣れていない場合は、Spring Framework の使用を開始することをお勧めします。 この記事では、それが何であるかとその使用方法を学びます。
スプリングフレームワークとは?
Spring Framework は、開発者がエンタープライズ Java アプリケーションを作成するために使用するオープンソース フレームワークです。 このフレームワークは Rod Johnson によって作成され、Apache 2.0 ライセンスの下で 2003 年にリリースされました。
一部のプログラマーは通常、Java を bash し、基本的なアプリケーションを作成するのは面倒だと主張します。 Spring Framework は、エンタープライズ Java アプリケーションを開発するための面倒で複雑なプロセスを簡素化することを目的としています。
春は広いです。 したがって、Spring Boot、Spring GraphQL、Spring Cloud などの他の Spring ベースのプロジェクトを使い始める前に、まず Spring フレームワークが何であるかを理解することをお勧めします。
Spring Framework を使用する理由
- フレキシブル。 このフレームワークは、アスペクト指向プログラミング (AOP)、依存性注入 (DI)、プレーン オールド Java オブジェクト (POJO) などのテクノロジを提供します。 したがって、Spring を使用してさまざまな目標を達成できます。
- 春は早い。 これらすべてのテクノロジーを備えているにもかかわらず、Spring Framework は依然として軽量であるため、スケーラブルで堅牢なエンタープライズ Web アプリケーションを作成するのに理想的です。
- 素晴らしいコミュニティ。 Spring には多様なコミュニティがあり、必要なときにさまざまなソリューションを支援してくれると信頼できます。
- 安全です。 Spring はセキュリティ対策で知られており、脆弱性は頻繁なパッチによって常に修正されます。 サードパーティの依存関係は、その脆弱性がコア プロセスに干渉しないように常に監視されています。
- 生産的。 Spring Framework は、Java エンタープライズ アプリケーションの開発エクスペリエンスを簡素化します。
スプリングの特徴
アスペクト指向プログラミングをサポート
アスペクト指向プログラミングは、分野横断的な関心事により多くのモジュール性を提供します。 AOP は、オブジェクト指向プログラミングも補完します。
AOP におけるモジュール性の主な単位は、分野横断的な関心事 (アスペクト) です。 したがって、開発者は、宣言型のエンタープライズ サービスとカスタム アスペクトを作成できます。
制御の反転 (IoC) コンテナ
IoC コンテナーは、Java オブジェクトを管理および構成する合理化された方法を提供します。 定義された Java オブジェクトのライフサイクルは、このコンテナーによって管理されます。これにより、Spring ベースのアプリケーションの再構成可能性が大幅に向上します。
Inversion of Control は、依存関係ルックアップまたは依存関係注入パターンを利用して、オブジェクト参照ランタイムを提供します。 IoC コンテナーには、構成管理に必要なアセンブラー コードが付属しています。
データ アクセス フレームワーク
Spring は、Java で最も一般的なデータ アクセス フレームワークの一部である Hibernate、JDBC、および Java Persistence API (JPA) を直接サポートしているため、データ通信プロセスが簡素化されます。 このフレームワークを利用して、サポートされているすべてのデータ アクセス フレームワークに対して、リソース ラッピング、例外処理、リソース管理などの機能を提供することもできます。
Spring MVC フレームワーク
開発者は、この要求ベースのフレームワークを使用して、ニーズに合わせてカスタマイズされた MVC 実装を作成できます。
DispatcherServlet クラスは、ユーザーのリクエストを処理し、適切なコントローラーに転送する役割を担っており、Spring MVC の中核に位置しています。 したがって、コントローラーはリクエストを処理し、モデルを作成し、指定されたビューを通じてエンドユーザーに情報を提供できます。
いくつかのテスト フレームワークがある
Mock オブジェクト、TestContext フレームワーク、または Spring MVC Test を使用して、Spring ベースのアプリケーションを開発しながらテストできます。
言語サポート
Spring フレームワークは Groovy と Kotlin をサポートしています。
春の建築
Spring Framework には約 20 個のモジュールが付属しています。 このフレームワークの良いところは、ユースケースに適用できるモジュールを選択できることです。 これらのモジュールは、コア コンテナー、AOP (アスペクト指向プログラミング)、データ アクセス/統合、Web、インストルメンテーション、およびテストにグループ化されます。
#1。 コアコンテナ
Spring Framework の Core Container には、Core、Beans、Context、および Expression Language モデルが含まれています。 これらの言語モデルは、次の点で役立ちます。
- Coreモジュールはフレームワークの基本部分です。 コアには IoC と依存性注入機能があります。
- Beanモジュールは、ファクトリ パターンの高度な実装である BeanFactory で知られています。
- Contextモジュールは、Core モジュールと Bean モジュールに基づいて構築されています。 このモジュールは、その機能を Bean モジュールから継承しますが、国際化のサポートを追加します。
- 式言語モジュールは、実行時にオブジェクト グラフを操作およびクエリするための強力な式言語を提供します。
#2。 データ アクセス/統合
JDBC、ORM、OXM、JMS、およびトランザクション モジュールは、データ アクセス/統合レイヤーを構成します。 これらのモジュールは以下を実行します。
- JDBCモジュールには JBDC 抽象化レイヤーがあり、面倒な JDBC コーディングやデータベース ベンダー固有のエラー コードの解析を行う必要がありません。
- ORMは、JPA、JDO、Hibernate、iBatis などの一般的なオブジェクト リレーショナル マッピング API の統合レイヤーです。 '
- OXMモジュールは、XStream、JAXB、JiBX、Castor、および XMLBeans のオブジェクト/XML マッピング実装をサポートする抽象化レイヤーです。
- Transactionモジュールは、特別なインターフェイスを実装するクラスの宣言型およびプログラムによるトランザクション管理をサポートします。
- Java Messaging Service (JMS) モジュールには、メッセージを生成および消費する機能があります。
#3。 AOP (アスペクト指向プログラミング) とインストルメンテーション
このモジュールには、AOP Alliance 準拠のアスペクト指向プログラミング実装が付属しており、メソッド インターセプターなどを簡単に定義できます。 一方、インストルメンテーション モジュールは、特定のアプリケーション サーバーで使用されるクラスローダーとクラス インストルメンテーションのサポートを提供します。
#4。 ウェブ
Web、Web-Servlet、Web-Struts、および Web-Portlet モジュールが Web 層を構成します。
- Webモジュールは、マルチパート ファイル アップロード機能などの基本的な Web 指向の統合機能を担当します。
- Web-Servletモジュールは、Web アプリケーション用の Spring の MVC 実装を特徴としています。
- Web ポートレットモジュールは、Web サーブレット モジュールの機能を反映しています。 Web-Portlet モジュールは、ポートレット環境で使用される MVC 実装を提供します。
- Web-Socketモジュールは、Web アプリケーションでのサーバーとクライアント間の双方向通信をサポートします。
#5。 テスト
Test モジュールは、Spring のアーキテクチャの最後の部分です。 TestNGやJUnitによるSpringコンポーネントのテストをサポートするモジュールです。
Spring フレームワークをインストールする
Java がインストールされていることを確認する
Spring Framework の仕組みを学ぶ前に、PC に Spring をインストールする必要があります。 Spring のドキュメントには、オペレーティング システムに応じた開始方法に関する広範なリソースがあります。
ここでは、Linux ベースのオペレーティング システムである Ubuntu 20.04.5 を使用します。
Spring をインストールする前に、このコマンドを使用して Java がインストールされていることを確認してください。
java -version
Java がインストールされている場合は、このスクリーンショットのような出力が得られます。
PC にインストールされていない場合は、必要に応じて Java をインストールする方法がいくつかあります。
Spring フレームワークをインストールする
Spring のドキュメントで強調されているように、Spring フレームワークをインストールするにはいくつかの方法があります。
この場合、GVM (Groovy Environment Manager) を使用します。 GVMtool を使用して GVM を取得するか、コマンド ラインでインストールできます。
GVM を入手したら、次のコマンドを使用してインストールし、Spring フレームワークがインストールされているかどうかを確認します。
gvm install springboot
spring --version
Spring がインストールされている場合、次のような出力が得られる可能性があります。
Spring フレームワークに関する重要な用語
依存性注入
依存性注入は、開発者がクラスの外部に独立したオブジェクトを作成できるようにする機能です。 DI を使用すると、ユーザーはこれらのオブジェクトをさまざまな方法でクラスに提供することもできます。
制御の反転 (IoC)
IoC は、プログラムまたはオブジェクトの一部の制御をフレームワークまたはコンテナーに移す概念です。 従来のプログラミングでは、カスタム コードでライブラリを呼び出します。 一方、IoC では、フレームワーク (この場合は Spring) がカスタム コードを呼び出し、プログラムのフローを制御できます。
アスペクト指向プログラミング (AOP)
AOP は、アプリケーション全体に適用できる共通の再利用可能なルーチンを構築するための手法です。 このようなアプローチは、反復可能なタスク (入力の検証、ログ記録、エラー処理など) をコア アプリケーション ロジックから分離します。
Spring フレームワークの学習リソース
#1。 Spring Framework 5 を使用したリアクティブ プログラミング
この春のコースは、ビデオ、記事、およびダウンロード可能なリソースで構成されています。 このコースでは、Java を使用した関数型プログラミング、Spring WebFlux を使用したマイクロサービスの作成方法、および Spring Data MongoDB でリアクティブ型を活用する方法について説明します。
#2。 Spring Framework マスタークラス
Spring Framework Master Class は、Java プロジェクトが Spring Framework を実際に使用する方法を教える有料コースです。 Spring Boot、JUnit と Mockito、Spring JDBC、Spring AOP、Hibernate などのさまざまなツールの使用方法を学習します。
#3。 簡単な手順での Spring フレームワーク
Spring Framework In Easy Steps は、Spring Framework を使用してエンド ツー エンドの Java EE Web アプリケーションを作成する場合に受講するのに最適なプレミアム コースです。 Spring MVC を使用して Web アプリケーションを開発する方法、JQuery と Spring MVC を使用して Ajax 呼び出しを作成する方法、Spring JDBC を使用してデータベース操作を実行する方法などを学びます。
#4。 春のフレームワーク 5
Spring Framework 5 コースは、Spring Framework 5、Spring Data MongoDB、Spring Boot 2、Spring MVC、Spring Data JPA、および Hibernate を学びたい場合に最適です。 57 時間のオンデマンド ビデオ、13 の記事、および多数のダウンロード可能な資料を利用できます。
著者のメモ
Java は、現代の世界で最も人気のあるプログラミング言語の 1 つであり続けています。 新しい言語が導入されているにもかかわらず、Spring などのフレームワークは Java に新しい命を吹き込み、その有用性を拡大しています。 したがって、Java エンジニアはレガシー コードを維持し、新しいアプリケーションを作成する必要があるため、引き続き需要がありそうです。
結論
Spring は Java EE フレームワークの中でも上位にランクされています。Spring Framework とは何か、その機能、アーキテクチャ、および作業プロセスを理解していただければ幸いです。 他の Spring プロジェクトと組み合わせると、Spring Framework は、さまざまな開発環境で使用できるさまざまな開発ツールを開発者に提供します。