English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SpringBoot アノテーション

Spring Bootのアノテーションは、プログラムに関するデータを提供するメタデータ形式です。言い換えれば、アノテーションはプログラムに関する 補足情報について議論します。これは私たちが開発したアプリケーションの一部ではありません。注釈のコードの操作には直接的な影響はありません。既にコンパイルされたプログラムの操作を変更しません。

本節では、いくつかの重要な Spring Bootアノテーション本教程の後半部分で使用する予定です。

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

@Required: それは適用されます bean 設定メソッドです。それは、アノテーションを持つBeanに必要な属性を設定時に埋め込まなければならないことを示します。そうしないと、例外が発生します。 BeanInitilizationException

public class Machine 
{
private Integer cost;
@Required
public void setCost(Integer cost) 
{
    this.cost = cost;
}
public Integer getCost() 
{
    costを返します。
}   
}

@Autowired: : Springは@Autowiredアノテーションを提供して、アノテーションベースの自動連携を提供します。それはsetterメソッド、インスタンス変数、コンストラクタ上のSpring beanを自動的に接続するために使用されます。@Autowiredアノテーションを使用すると、Springコンテナがデータタイプに基づいてbeanを自動的に接続します。

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

@Configuration: : これはクラスレベルのアノテーションです。@Configurationアノテーションを持つクラスはSpring Containersがbean定義のソースとして使用されます。

@Configuration
public class Vehicle
{
    @BeanVehicle engine()
    {
        new Vehicle();を返します。
    }
}

@ComponentScan: : 軟件パッケージ内のbeanをスキャンする際に使用されます。それは注釈@Configurationと一緒に使用されます。また、Springコンポーネントをスキャンする基本ソフトウェアパッケージを指定することもできます。

@ComponentScan(basePackages = "com.w"3codebox")
@Configuration
public class ScanComponent
{
// ...
}

@Bean: メソッドレベルのアノテーションです。それはXMLマークされたメソッドの代わりになります。それはSpring Containerが管理するbeanを生成するメソッドであることを示します。

@Bean
public BeanExample beanExample() 
{
    new BeanExample();を返します。
}

Spring Frameworkの構造型アノテーション

@Component: 。これはクラスレベルのアノテーションです。JavaクラスをBeanとしてマークするために使用されます。クラスパスに存在する、以下のアノテーションを持つクラスが見つかった場合に使用されます。 @Component アノテーションを持つJavaクラス。Springフレームワークはそれを拾い、アプリケーションコンテキストで設定します。 Spring Bean

@Component
public class Student
{
    ……
}

@Controller: @Controllerはクラスレベルのアノテーションです。これは @Component の専門化。クラスをWebリクエストハンドラとしてマークします。通常、ウェブページをサービスするために使用されます。デフォルトでは、リダイレクトするルートを示す文字列を返します。通常、以下と一緒に使用されます。 @RequestMapping アノテーションを一緒に使用します。

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

@Service: クラスレベルにも使用されます。Springにこのクラスがどのような内容を持つかを伝えます。 ビジネスロジック

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

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

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

Spring Bootアノテーション

@EnableAutoConfiguration: :Spring Bootでは、クラスパスに存在するbeanを自動的にコンフィギュレートし、実行メソッドとして設定します。 1.2.0リリース版では、開発者が代替方法を提供したため、このアノテーションの使用を減らしました。 @SpringBootApplication @SpringBootApplication: :これらは3つのアノテーションです @EnableAutoConfiguration、@ComponentScan、および @Configuration の組み合わせ。

Spring MVCとRESTアノテーション

@RequestMapping: をマッピングするために使用しますネットワークリクエスト。多くのオプション要素(例えば consumes、header、method、name、params、path、produces、value)を持っています。これらをクラスやメソッドと一緒に使用します。

@Controller
public class BooksController 
{
    @RequestMapping("/computer-science/books)
    public String getAllBooks(Model model)
    {
        //application code
        return "bookList";
    }
}

@GetMapping: 以下を HTTP GET 特定のハンドラーメソッドにリクエストをマッピングします。以下を使用して、以下を作成します:抽出のWebサービスエンドポイントを、以下の代わりに使用します: @RequestMapping(method = RequestMethod.GET) @PostMapping 以下を HTTP POST 特定のハンドラーメソッドにリクエストをマッピングします。以下を使用して、以下を作成します:作成のWebサービスエンドポイントを、以下の代わりに使用します: @RequestMapping(method = RequestMethod.POST) @PutMapping: 以下を HTTP PUT 特定のハンドラーメソッドにリクエストをマッピングします。以下を使用して、以下を作成します:作成または更新のWebサービスエンドポイントを、以下の代わりに使用します: @RequestMapping(method = RequestMethod.PUT) @DeleteMapping: 以下を HTTP DELETE 特定のハンドラーメソッドにリクエストをマッピングします。以下を使用して、以下を作成します:削除リソースのWebサービスエンドポイントです。以下の代わりに使用します: @RequestMapping(method = RequestMethod.DELETE) @PatchMapping: 以下を HTTP PATCH 特定のハンドラーメソッドにリクエストをマッピングします。以下の代わりに使用します: @RequestMapping(method = RequestMethod.PATCH) @RequestBody: HTTPリクエストのボディをメソッドのパラメータのオブジェクトにバインド内部で、以下を使用して HTTP MessageConverters リクエストの正文を変換します。以下のように使用する場合 @RequestBodyアノテーションでメソッドのパラメータにアノテーションを付ける場合、SpringフレームワークはHTTPリクエストのボディをそのパラメータにバインドします。 @ResponseBody: メソッドの返却値をレスポンスのボディにバインドします。Spring Boot Frameworkが返却するオブジェクトをJSONとXML形式にシリアライズするように指示します。 @PathVariable: 用于从URI中提取值。它最适合RESTful Web服务,其中URL包含路径变量。我们可以在一个方法中定义多个@PathVariable。 @PathVariable: URIから値を抽出するために使用されます。RESTful Webサービスに最適です。URLにパス変数が含まれる場合、複数の @PathVariable を定義できます。URLからクエリパラメータを抽出するために使用されます。別名として @RequestParam と呼ばれます。クエリパラメータ 。これは、Webアプリケーションに最適です。URLにクエリパラメータが存在しない場合、デフォルト値を指定できます。 HTTPリクエストヘッダーの詳細情報を取得するために使用されます。このアノテーションを @RequestHeader として使用します。メソッドパラメータ。アノテーションのオプション要素は名前、必須、値、defaultValue。 タイトルの各詳細について、それぞれのアノテーションを指定する必要があります。一度のメソッドで複数回使用できます。 @RestController: それを以下のように @Controller および @ResponseBody アノテーションの組み合わせ。 @RestController アノテーション自体は @ResponseBody アノテーションでアノテーションされています。各メソッドに @ResponseBody アノテーションを使用する必要はありません。 @RequestAttribute: メソッドのパラメータをリクエスト属性にバインドします。リクエスト属性に簡単にアクセスする方法を提供します。@RequestAttribute アノテーションを使用して、サーバー側で埋め込まれたオブジェクトにアクセスできます。

注意: RESTful Webサービスの教程で使用したすべての例と実際の例を使用しました。