スプリングブーツの豆
Java プログラミング言語では、「Bean」は通常、特定の仕様に準拠した通常の Java クラスである Java Bean を指します。Java Bean クラスには次の特性があります。
-
カプセル化: Java Beans は、プライベート フィールド (メンバー変数) とパブリックの Getter メソッドおよび Setter メソッドを使用してデータをカプセル化し、プロパティのアクセス制御を実現します。
-
引数のないコンストラクター: Java Beans には通常、Bean オブジェクトの作成に使用される引数のないコンストラクターが含まれています。
-
Serializable: Java Beans は Serializable インターフェイスを実装して、オブジェクトのシリアル化および逆シリアル化操作をサポートできます。
-
プロパティ アクセサ: Java Bean クラスのプロパティには、Getter メソッドと Setter メソッドを通じてアクセスします。Getter メソッドはプロパティ値の取得に使用され、Setter メソッドはプロパティ値の設定に使用されます。
Java Bean の設計目的は、Java プログラムの開発と保守を簡素化し、プログラマが統一された方法でオブジェクトのプロパティにアクセスして操作できるようにすることです。Java Beans は、JavaServer Faces (JSF) や Spring Framework などのフレームワークなどの Java EE (Enterprise Edition Java) や、Java グラフィカル インターフェイス開発 (JavaFX など) で広く使用されています。
つまり、Java Bean は特定の仕様に準拠した通常の Java クラスであり、カプセル化、属性アクセサー、直列化機能などの機能を通じて、Java プログラムの開発と保守を容易にする標準化されたプログラミング モデルを提供します。
Springフレームワークにおいて「Bean」は非常に重要な概念であり、Springコンテナによって管理されるオブジェクトです。Spring Bean は、依存関係の注入 (Dependency Injection) を通じて作成および管理されます。
Spring では、Java クラス (POJO) または他の Spring フレームワーク コンポーネントを Bean として宣言できます。Spring コンテナは、構成ファイル (XML 構成ファイルなど) またはアノテーションを使用してこれらのクラスを Bean としてマークし、そのライフサイクルの作成、初期化、管理を担当します。
春豆には次のような特徴があります。
-
構成可能性: Bean は、アプリケーションのニーズに応じて構成ファイルで定義および構成できます。構成ファイルは、Spring コンテナにこれらの Bean の作成および管理方法を指示します。
-
依存関係の注入: Spring コンテナは、依存関係の注入を通じて Bean 間の依存関係を分離します。つまり、Bean を作成するときに、Spring はコンストラクター、Setter メソッド、またはフィールドを通じて依存する他の Bean を自動的に注入します。
-
ライフサイクル管理: Spring コンテナは、Bean の作成、初期化、破棄時に特定の操作を実行するなど、Bean のライフサイクルを管理します。初期化メソッドと破棄メソッドを定義することで、Bean ライフサイクルのさまざまな段階でカスタム ロジックを追加できます。
-
AOP サポート: Spring フレームワークは、アスペクト指向プログラミング (AOP) のサポートを提供します。これにより、構成を通じてビジネス ロジックから横断的な問題 (ログ、トランザクションなど) を切り離し、コードのモジュール性と保守性を向上させることができます。
Spring の Bean 管理により、アプリケーション コンポーネント間のコラボレーションがより柔軟になり、疎結合になります。Spring コンテナは、構成ファイルまたはアノテーションを通じて、必要に応じて Bean を動的に作成および管理することができ、制御の反転 (IoC) と依存性注入 (DI) の設計原則を実現し、アプリケーションの開発とメンテナンスを大幅に簡素化します。
Spring Boot フレームワークには、さまざまなコンポーネントのマークと構成に使用される一般的に使用されるアノテーションが多数あり、これらのアノテーションは Spring Boot フレームワークによってリフレクション メカニズムを通じてスキャンされ、処理されます。以下に、いくつかの一般的なアノテーション、その役割、ライフサイクルを示します。
@SpringBootApplication:
これは、メインの起動クラスをマークするために使用される結合されたアノテーションです。これは @Configuration、@EnableAutoConfiguration、@ComponentScan の組み合わせであり、Spring Boot の自動構成とコンポーネント スキャンを有効にするために使用されます。
@成分:
クラスをコンポーネントとしてマークすることは、通常、通常の Spring 管理 Bean クラスをマークするために使用されます。
@コントローラ:
クラスを HTTP リクエストを処理するコントローラー (Controller) としてマークします。
@RestController:
@Controller に似ていますが、RESTful スタイルのデータが返されることを示す @ResponseBody アノテーションが付いています。
@サービス:
クラスをサービス層コンポーネントとしてマークします。これは通常、ビジネス ロジックを定義するために使用されます。
@リポジトリ:
クラスをデータベース操作の永続層 (リポジトリ) コンポーネントとしてマークします。
@RequestMapping:
メソッドまたはクラスをリクエスト マッピングのハンドラーとしてマークします。これは、HTTP リクエストを処理して応答を返すために使用されます。
@オートワイヤード:
オートワイヤリング (依存性注入) アノテーションは、Spring コンテナ内の Bean を指定されたクラスまたはフィールドに注入するために使用されます。
@価値:
構成ファイルから Spring 管理の Bean に値を注入するために使用されます。
@PostConstruct:
Bean の初期化が完了した後に実行されるメソッドをマークします。
@PreDestroy:
Bean が破棄される前に実行されるメソッドをマークします。
@条件付き:
条件に基づいて Bean をインスタンス化するかどうかを決定するために使用されます。
@EnableAutoConfiguration:
自動構成を有効にし、Spring Boot がクラスパスの依存関係に基づいてプロジェクトを自動的に構成できるようにします。
@リクエストボディ:
HTTP リクエストのコンテンツをアノテーション付きメソッド パラメータにバインドします。
@パス変数:
URLからパラメータ値を取得するために使用されます。
@構成:
クラスを構成クラスとしてマークして、いくつかの Bean または構成項目を定義します。
@輸入:
他の構成クラスから現在の構成クラスに Bean をインポートするために使用されます。
@プロフィール:
現在の構成クラスまたは Bean が特定の環境 (dev、test、prod など) でのみアクティブ化されることを指定するために使用されます。
@価値:
プロパティ ファイルからクラス プロパティに値を挿入するために使用されます。