誰もが知っておくべきSpringBootの基本的な注釈
公開: 2021-12-13Java Spring Frameworkは、Java仮想マシン(JVM)で実行される本番環境グレードのスタンドアロンアプリケーションを作成するために使用されるオープンソースのエンタープライズレベルのフレームワークです。 この目的のために、Java Spring Bootは、SpringFrameworkを使用したWebアプリケーションとマイクロサービスの開発を簡素化および加速するツールです。 このために、Java Spring Bootは、自動構成、構成への独創的なアプローチ、およびスタンドアロンアプリケーションを作成する可能性という3つのコア機能を活用します。 これらのコア機能の統合により、開発者は最小限の構成でSpringベースのアプリケーションをセットアップできるツールが提供されます。
アノテーションが作成される前は、SpringFrameworkの動作はほとんどXML構成で制御されていました。 ただし、Spring Bootアノテーションにより、SpringFrameworkの動作を構成する方法が大幅に変更されました。
この記事では、SpringFrameworkの基本的なアノテーションのいくつかについて説明します。
目次
Spring Bootアノテーションとは何ですか?
Spring Bootアノテーションは、メタデータの形式です。 これらは、それ自体が開発中のアプリケーションの一部ではありませんが、プログラムに関する補足データを提供します。 注釈は、注釈を付けるコードの動作に直接影響を与えることはなく、コンパイルされたプログラムの動作を変更することもありません。
Springアプリケーションには、かなりの程度の構成が必要です。 Spring Bootは、SpringFrameworkを基に構築された独創的なフレームワークです。 これにより、構成の労力と開始する必要のある定型文が最小限に抑えられます。 Spring Bootアノテーションは、Spring Frameworkを制御し、フレームワークを管理し、必要に応じてデフォルトをオーバーライドするための鍵です。 これらのアノテーションは使いやすく、同等の機能を最初から作成するよりも迅速です。
誰もが知っておくべき春のブートアノテーション
Spring BootはJava、Groovy、およびKotlinで動作しますが、重要なSpringBootアノテーションについて説明する際にJavaに焦点を当てます。
1.@Configuration
@Configurationは、Beanを定義するクラスで使用されます。 XML構成ファイルの類似物は、Bean定義のソースとして使用されるクラスレベルのアノテーションです。 @Configurationアノテーションが付けられたJavaクラスは、それ自体が構成であり、依存関係を構成およびインスタンス化するためのメソッドがあります。
例:
@構成
公共クラスバス
{{
@BeanBus engine()
{{
新しいBus();を返します。
}
}
2. @Bean
XML <bean>タグの代わりに、@ Beanアノテーションがメソッドレベルで使用され、メソッドがSpringコンテナによって管理されるBeanを生成することを示します。 このアノテーションは@Configurationと連携して、SpringBeanを作成します。 @Configurationには、依存関係を構成およびインスタンス化するメソッドがあり、そのようなメソッドには@Beanアノテーションが付けられます。
例:
@豆
Public BeanExample beanExample()
{{
新しいBeanExample()を返し、
}
3. @ComponentScan
@ComponentScanアノテーションは、Beanのパッケージをスキャンするために使用されます。 これは、@ Configurationアノテーションとともに使用され、アノテーション付きコンポーネントをスキャンする必要があるパッケージをSpringに通知します。
例:
@ComponentScan(basePackages =“ com.xyz”)
@構成
パブリッククラスScanComponent
{{
//…
}
4.@Component
@Componentアノテーションは、Springコンポーネントを示すためにクラスで使用されます。 これは、自動スキャン中にクラスをSpringBeanに変換するクラスレベルのアノテーションです。
例:
@成分
パブリッククラスの教師
{{
……
}
5.@EnableAutoConfiguration
@EnableAutoConfigurationアノテーションは通常、メインアプリケーションクラスに配置され、基本検索パッケージを暗黙的に定義します。 クラスパス設定、さまざまなプロパティ設定、およびその他のBeanに基づいて、@EnableAutoConfigurationはSpringBootにBeanの追加を開始するように指示します。
6. @SpringBootApplication
@SpringBootApplicationアノテーションは、@ Configuration、@ EnableAutoConfiguration、および@ComponentScanの3つのアノテーションを追加します。 これは、Spring Bootプロジェクトのセットアップ中にアプリケーションクラスで使用され、@SpringBootApplicationアノテーションが付けられたクラスは基本パッケージに配置されます。 @SpringBootApplicationはコンポーネントのスキャンを実行しますが、サブパッケージのみをスキャンします。
7.@Repository
@Repositoryアノテーションは、データベースに直接アクセスするJavaクラスで使用されます。 これは、データアクセスオブジェクトまたはリポジトリの役割を果たすクラスのマーカーとして機能します。
例:
@リポジトリ
パブリッククラスTestRepository
{{
public void delete()
{{
//永続性コード
}
}
8.@Service
これは、ビジネスロジックの実行、計算の実行、外部APIの呼び出しなどのサービスを実行するJavaクラスをマークするクラスレベルのアノテーションです。 @Serviceアノテーションは、サービスレイヤーで使用するための@Componentアノテーションの特別な形式です。
例:
@サービス
パブリッククラスTestService
{{
public void service1()
{{
//ビジネスコード
}
}
9. @Autowired
このアノテーションは、オブジェクトの依存関係を暗黙的に挿入し、フィールド、コンストラクター、およびセッターメソッドに適用されます。 @Autowiredがフィールドで使用され、フィールドの値がプロパティ名を使用して渡される場合、Springは渡された値をフィールドに自動的に割り当てます。
10.@Controller
@Controllerアノテーションは、アプリケーションでコントローラーとして機能するJavaクラスで使用されます。 これにより、クラスパス内のコンポーネントクラスを自動検出し、それらのBean定義を自動登録することができます。 @Controllerアノテーションは通常@RequestMappingで使用され、@Controllerアノテーションが付けられたJavaクラスは複数のリクエストマッピングを処理できます。
例:
@コントローラ
@RequestMapping( "cars")
パブリッククラスCarsController
{{
@RequestMapping(value =“ / {name}”、method = RequestMethod.GET)
public Employee getCarsByName()
{{
返却carsTemplate;
}
}
11. @RequestMapping
@RequestMappingアノテーションは、メソッドレベルとクラスレベルの両方で使用されます。 これは、Webリクエストを指定されたハンドラーメソッドとハンドラークラスにマップするのに役立ちます。 @RequestMappingをメソッドで使用すると、ハンドラーメソッドの実行が行われるURLが提供されます。 逆に、アノテーションがクラスのレベルで使用される場合、コントローラーが使用されるベースURLが作成されます。 したがって、各ハンドラーメソッドにはそれぞれのリクエストマッピングがありますが、クラスレベルのリクエストマッピングは同じままです。
例:
@コントローラ
パブリッククラスFlowersController
{{
@RequestMapping(“ / red-colour / photos”)
public String getAllFlowers(モデルモデル)
{{
//アプリケーションコード
「フラワーリスト」を返します。
}
12.@Qualifier
@Qualifierは、依存性注入プロセスをさらに制御する必要がある場合に、@Autowiredとともに使用されます。 @Qualifierアノテーションは、メソッドパラメーターまたは個々のコンストラクター引数のいずれかで指定できます。 通常、開発者が同じタイプのBeanを複数作成すると混乱が生じますが、プロパティに接続する必要があるのはそのうちの1つだけです。 @Qualifierアノテーションは、これらの混乱を解消するのに役立ちます。
例:
@成分
パブリッククラスBeanB1はBeanInterface{を実装します
//
}
@成分
パブリッククラスBeanB2はBeanInterface{を実装します
//
}
上記の例では、BeanInterfaceは2つのBeanBeanB1とBeanB2によって実装されています。 これで、BeanAがこのインターフェースを自動配線する場合、Springは2つの実装のどちらを注入する必要があるかを認識しません。 この問題は、@Qualifierアノテーションを使用して解決できます。 このアノテーションを設定すると、SpringはどのBeanを自動配線するかを認識します。
@成分
パブリッククラスBeanA{
@Autowired
@Qualifier(“ beanB2”)
プライベートBeanInterface依存関係。
…
}
13.@Value
@Valueアノテーションは、フィールド、メソッドパラメーター、およびコンストラクターパラメーターレベルで使用されます。 これは、プロパティを初期化するためのパラメーターまたはフィールドのデフォルト値式を示します。
14.@Lazy
@Lazyアノテーションはコンポーネントクラスに適用されます。 起動時に、すべての自動配線された依存関係がデフォルトで作成および構成されます。 ただし、開発者がBeanを遅延初期化する場合は、@Lazyアノテーションを使用できます。 したがって、Beanは要求があった場合にのみ作成され、初期化されます。 @Lazyアノテーションは@Configurationクラスでも使用できます。これは、その@Configuration内のすべての@Beanメソッドが遅延して開始されることを意味します。
このJavaSpringBootアノテーションのリストは網羅的ではありませんが、多かれ少なかれ、すべての開発者またはJava愛好家が知っておくべき最も基本的なアノテーションをカバーしています。 結局のところ、Spring BootはSpringベースのアプリケーションの開発を簡素化しており、知っておく価値があります。
リバプールジョンムーア大学でデータサイエンスの理学修士
あなたが意欲的なデータサイエンティストであるなら、ここに最高のものから学ぶ機会があります。 upGradは、リバプールジョンムーア大学と提携してデータサイエンスのオンライン科学修士号を提供しています。これは、データサイエンスのスキルと知識を磨こうとしている働く専門家向けに特別に設計されています。
プログラムのハイライトを一目で確認できます。
- LJMUの修士号とIITバンガロアのエグゼクティブPGP
- ライブセッション、ケーススタディ、プロジェクトが満載の500時間以上の学習
- 14以上のツールとソフトウェアを包括的にカバー
- 3つのユニークな専門分野
- 360度の専用キャリア支援
- ピアラーニングと業界ネットワーキング
upGradの没入型で業界関連の学習プログラムは、世界中で50万人を超える働く専門家に影響を与え、より高いEdTech業界で高い基準を設定し続けています。 だから、今日応募して、85カ国に広がる40,000以上のグローバルな学習者ベースに参加してください!
世界のトップ大学からオンラインでデータサイエンスコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
スプリングブートスターターの目的は何ですか?
Spring Bootスターターは、クラスパスにjarを追加できる依存関係記述子です。 Spring Bootフレームワークでは、すべてのスターターに次の命名パターンがあります。spring-boot-starter-*、ここで*は特定のアプリケーションタイプを表します。
@SpringBootApplicationと@EnableAutoConfigurationの違いは何ですか?
@EnableAutoConfigurationの主なタスクは、SpringBootアプリケーションの自動構成機能を有効にすることです。 それどころか、@ SpringBootApplicationは、コンポーネントスキャン用の@ComponentScan、SpringフレームワークでのJavaベースの構成用の@Configuration、およびSpringBootアプリケーションでの自動構成を可能にするための@EnableAutoConfigurationの3つのアノテーションを組み合わせています。
SpringBootApplicationなしでSpringブートを実行できますか?
@SpringBootApplicationを使用してSpringBootアプリケーションを作成することは必須ではありません。 @EnableAutoConfigurationと@Configurationは引き続き個別に使用できます。