logo

Spring Boot アノテーション

Spring Boot アノテーションは、プログラムに関するデータを提供するメタデータの形式です。言い換えれば、アノテーションは次の目的で使用されます。 補足 番組に関する情報。これは私たちが開発するアプリケーションの一部ではありません。アノテーションを付けたコードの動作には直接影響しません。コンパイルされたプログラムの動作は変わりません。

このセクションでは、いくつかの重要な点について説明します。 Spring Boot アノテーション このチュートリアルの後半で使用します。

コア Spring フレームワークのアノテーション

@必須: 該当するのは、 セッターメソッド。これは、アノテーション付き Bean に構成時に必要なプロパティを設定する必要があることを示します。そうでない場合は例外がスローされます。 BeanInitilizationException

 public class Machine { private Integer cost; @Required public void setCost(Integer cost) { this.cost = cost; } public Integer getCost() { return cost; } } 

@Autowired: Spring は @Autowired アノテーションを提供することで、アノテーションベースの自動配線を提供します。これは、セッター メソッド、インスタンス変数、およびコンストラクターで Spring Bean を自動配線するために使用されます。 @Autowired アノテーションを使用すると、Spring コンテナはデータ型を一致させることによって Bean を自動接続します。

 @Component public class Customer { private Person person; @Autowired public Customer(Person person) { this.person=person; } } 

@構成: これはクラスレベルのアノテーションです。 @Configuration アノテーションが付けられたクラス。Spring Containers によって Bean 定義のソースとして使用されます。

 @Configuration public class Vehicle { @BeanVehicle engine() { return new Vehicle(); } } 

@コンポーネントスキャン: これは、Bean のパッケージをスキャンする場合に使用されます。注釈 @Configuration とともに使用されます。 Spring コンポーネントをスキャンする基本パッケージを指定することもできます。

 @ComponentScan(basePackages = 'com.javatpoint') @Configuration public class ScanComponent { // ... } 

@豆: これはメソッドレベルのアノテーションです。 XMLタグの代替です。これは、Spring Container によって管理される Bean を生成するメソッドを指示します。

 @Bean public BeanExample beanExample() { return new BeanExample (); } 

Spring Framework のステレオタイプ アノテーション

@成分: これはクラスレベルのアノテーションです。 Java クラスを Bean としてマークするために使用されます。注釈が付けられた Java クラス @成分 クラスパス中に見つかります。 Spring Framework はそれを取得し、アプリケーション コンテキスト内でそれを構成します。 春の豆

 @Component public class Student { ....... } 

@コントローラ: @Controller はクラスレベルのアノテーションです。の専門分野です @成分 。クラスを Web リクエスト ハンドラーとしてマークします。 Web ページを提供するためによく使用されます。デフォルトでは、どのルートをリダイレクトするかを示す文字列を返します。主に一緒に使用されます @RequestMapping 注釈。

 @Controller @RequestMapping('books') public class BooksController { @RequestMapping(value = '/{name}', method = RequestMethod.GET) public Employee getBooksByName() { return booksTemplate; } } 

@サービス: 授業レベルでも使われます。クラスに次のものが含まれていることを Spring に伝えます。 ビジネスの論理

 package com.javatpoint; @Service public class TestService { public void service1() { //business code } } 

@リポジトリ: これはクラスレベルのアノテーションです。リポジトリは DAO (データ アクセス オブジェクト) データベースに直接アクセスします。リポジトリは、データベースに関連するすべての操作を実行します。

 package com.javatpoint; @Repository public class TestRepository { public void delete() { //persistence code } } 

Spring Boot アノテーション

    @EnableAutoConfiguration:クラスパスに存在する Bean を自動構成し、メソッドを実行するように構成します。開発者がアノテーションの代替手段を提供したため、Spring Boot 1.2.0 リリースではこのアノテーションの使用が減りました。 @SpringBootApplication 。@SpringBootApplication:3 つのアノテーションを組み合わせたものです @EnableAutoConfiguration、@ComponentScan、 そして @構成

Spring MVC および REST アノテーション

    @RequestMapping:をマッピングするために使用されます。 ウェブリクエスト 。次のような多くのオプション要素があります 消費、ヘッダー、メソッド、名前、パラメータ、パス、生成 、 そして 価値 。メソッドだけでなくクラスでも使用します。

 @Controller public class BooksController { @RequestMapping('/computer-science/books') public String getAllBooks(Model model) { //application code return 'bookList'; } 
    @GetMapping:それは、 HTTP GET 特定のハンドラー メソッドに対するリクエスト。これは、Web サービス エンドポイントを作成するために使用されます。 フェッチする 以下の代わりに使用されます。 @RequestMapping(メソッド = RequestMethod.GET) @PostMapping:それは、 HTTPポスト 特定のハンドラー メソッドに対するリクエスト。これは、Web サービス エンドポイントを作成するために使用されます。 作成します 以下の代わりに使用されます。 @RequestMapping(メソッド = RequestMethod.POST) @PutMapping:それは、 HTTP PUT 特定のハンドラー メソッドに対するリクエスト。これは、Web サービス エンドポイントを作成するために使用されます。 作成します または アップデート 以下の代わりに使用されます。 @RequestMapping(メソッド = RequestMethod.PUT) @DeleteMapping:それは、 HTTP削除 特定のハンドラー メソッドに対するリクエスト。これは、Web サービス エンドポイントを作成するために使用されます。 削除します リソース。以下の代わりに使用されます。 @RequestMapping(メソッド = RequestMethod.DELETE) @PatchMapping:それは、 HTTPパッチ 特定のハンドラー メソッドに対するリクエスト。以下の代わりに使用されます。 @RequestMapping(メソッド = RequestMethod.PATCH) @リクエストボディ:慣れています 練る メソッドパラメータにオブジェクトを含むHTTPリクエスト。内部的には使用します HTTP メッセージコンバータ リクエストの本文を変換します。メソッドパラメータに注釈を付けると、 @リクエストボディ、 Spring フレームワークは、受信した HTTP リクエストの本文をそのパラメーターにバインドします。@ResponseBody:メソッドの戻り値を応答本文にバインドします。これは、Spring Boot Framework に対して、戻り値のオブジェクトを JSON および XML 形式にシリアル化するように指示します。@パス変数:URI から値を抽出するために使用されます。これは、URL にパス変数が含まれる RESTful Web サービスに最適です。メソッド内で複数の @PathVariable を定義できます。@RequestParam:これは、URL からクエリ パラメータを抽出するために使用されます。としても知られています クエリパラメータ 。 Webアプリケーションに最適です。 URL にクエリ パラメータが存在しない場合は、デフォルト値を指定できます。@リクエストヘッダー:これは、HTTP リクエスト ヘッダーに関する詳細を取得するために使用されます。この注釈を次のように使用します。 メソッドパラメータ 。注釈のオプションの要素は次のとおりです。 名前、必須、値、defaultValue。 ヘッダーの詳細ごとに、個別の注釈を指定する必要があります。メソッド内で複数回使用できます@RestController:の組み合わせとして考えられます @コントローラ そして @ResponseBody 注釈 @RestController アノテーション自体に @ResponseBody アノテーションが付けられます。これにより、各メソッドに @ResponseBody の注釈を付ける必要がなくなります。@リクエスト属性:メソッドパラメータをリクエスト属性にバインドします。これにより、コントローラー メソッドからリクエスト属性に簡単にアクセスできます。 @RequestAttribute アノテーションを利用すると、サーバー側に設定されたオブジェクトにアクセスできます。

注: 上記のすべての注釈は、実際の例を使用した RESTful Web サービス チュートリアルで使用されています。