SpringBootで最も一般的に使用されるアノテーション

1.注釈のリスト

@SpringBootApplication:  @ ComponentScan、@ Configuration、および@EnableAutoConfigurationアノテーションが含まれています。その中で@ComponentScanを使用すると、Spring BootでConfigurationクラスをスキャンして、プログラムコンテキストに追加できます。

@Configurationは、Spring のXML構成ファイル同等です。Javaコードを使用して、型の安全性を確認できます。

@EnableAutoConfiguration 自動構成。

@ComponentScan コンポーネントスキャンは、いくつかのBeanを自動的に検出してアセンブルできます。

@Component をCommandLineRunnerとともに使用して、プログラムの開始後にいくつかの基本的なタスクを実行できます。

@RestController アノテーションは@Controllerと@ResponseBodyのコレクションであり、これがコントローラーBeanであることを示し、関数の戻り値は、RESTスタイルのコントローラーであるHTTP応答本文に直接入力されます。

@Autowiredは 自動的にインポートされます。

@PathVariable はパラメータを取得します。

@JsonBackReference は、ネストされた外部リンクの問題を解決します。

@RepositoryRestResourcepublicは 、spring-boot-starter-data-restと組み合わせて使用されます。

2.注釈の詳細な説明

@SpringBootApplication:Spring Bootが 必要に応じてプログラムを自動的に構成することを宣言します。この構成は、@ Configuration、@ EnableAutoConfiguration、および@ComponentScanの3つの構成と同等です。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

@ResponseBody: このメソッドの戻り結果がHTTP応答本文に直接書き込まれることを示します。これは通常、非同期でデータを取得するときに使用され、RESTfulAPIを構築するために使用されます。@RequestMappingを使用した後、戻り値は通常ジャンプパスとして解析されます。@ responsebodyを追加した後、戻り結果はジャンプパスとして解析されず、HTTP応答本文に直接書き込まれます。

たとえば、jsonデータを非同期で取得するには、@ responsebodyを追加した後、jsonデータが直接返されます。このアノテーションは通常、@ RequestMappingと一緒に使用されます。

サンプルコード:

@RequestMapping(“/test”)
@ResponseBody
public String test(){
    return”ok”;
}

@Controller: コントローラークラスを定義するために使用されます。Springプロジェクトでは、コントローラーは、ユーザーから送信されたURL要求を対応するサービスインターフェイス(サービスレイヤー)に転送する役割を果たします。通常、このアノテーションはクラス内にあり、通常はメソッドには@RequestMappingアノテーションを付ける必要があります。

サンプルコード:

@Controller
@RequestMapping(“/demoInfo”)
publicclass DemoController {
    @Autowired
    private DemoInfoService demoInfoService;

    @RequestMapping("/hello")
    public String hello(Map<String,Object> map){
        System.out.println("DemoController.hello()");
        map.put("hello","from TemplateController.helloHtml");
        //会使用hello.html或者hello.ftl模板进行渲染显示.
        return"/hello";
    }
}

@RestController:  @ResponseBodyと@Controllerのコレクションであるコントロールレイヤーコンポーネント(Strutsのアクションなど)に注釈を付けるために使用されます。

サンプルコード:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(“/demoInfo2”)
publicclass DemoController2 {

    @RequestMapping("/test")
    public String test(){
        return"ok";
    }
}

@RequestMapping: コントローラー内の特定の関数へのURLのマッピングを担当するルーティング情報を提供します。

@EnableAutoConfiguration:  Spring Bootの自動構成:追加したjarの依存関係に基づいてSpringアプリケーションを自動的に構成してみてください。たとえば、HSQLDBがクラスパスに存在し、データベース接続Beanを手動で構成していない場合、メモリ内データベースを自動的に構成します。

@EnableAutoConfigurationまたは@SpringBootApplicationアノテーションを@Configurationクラスに追加して、自動構成を選択できます。不要な特定の自動構成クラスが適用されていることがわかった場合は、@ EnableAutoConfigurationアノテーションのexclude属性を使用してそれらを無効にできます。

@ComponentScan: このクラスがスキャンコンポーネントを自動的に検出することを示します。個人的な理解は、@ Component、@ Controller、@ Serviceなどのアノテーションが付けられたクラスをスキャンし、それらをBeanとして登録すると、@ Configurationクラスを含むすべてのSpringコンポーネントを自動的に収集できることと同じです。

@ComponentScanアノテーションを使用してBeanを検索し、@ Autowiredアノテーションと組み合わせてインポートすることがよくあります。@Configurationクラスを含め、すべてのSpringコンポーネントを自動的に収集できます。@ComponentScanアノテーションを使用してBeanを検索し、@ Autowiredアノテーションと組み合わせてインポートすることがよくあります。

構成がない場合、Spring Bootは、スタートアップクラスが配置されているパッケージと、@ Service、@ Repository、およびその他のアノテーションが付いたサブパッケージの下のクラスをスキャンします。

@Configuration:これは 従来のxml構成ファイル同等です。一部のサードパーティライブラリでxmlファイルを使用する必要がある場合でも、プロジェクトのメイン構成クラスとして@Configurationクラスを使用することをお勧めします。@を使用できます。 xml構成ファイルをロードするためのImportResourceアノテーション。

@Import: 他の構成クラスをインポートするために使用されます。

@ImportResource:  xml構成ファイルをロードするために使用されます。

@Autowired: 依存Beanを自動的にインポートします

@Service: 通常、サービスレイヤーのコンポーネントを装飾するために使用されます

@Repository:  @Repositoryアノテーションを使用すると、DAOまたはリポジトリが例外変換を確実に提供できます。このアノテーションによって変更されたDAOまたはリポジトリクラスは、ComponetScanによって検出および構成され、XML構成アイテムを提供する必要はありません。

@Bean:@Beanを 使用してメソッドにアノテーションを付けることは、XMLで構成されたBeanと同等です。

@Value:  Springブートapplication.propertiesで構成されたプロパティの値を挿入します。

サンプルコード:

@Value(value = “#{message}”)
private String message;

@Inject: デフォルトの@Autowiredと同等ですが、必須の属性はありません。

@Component: 一般的なコンポーネントを指します。このアノテーションを使用して、コンポーネントを簡単に分類できない場合にアノテーションを付けることができます。

@Bean:  XMLと同等で、クラスではなくメソッドの上に配置されます。つまり、BeanはSpringによって生成および管理されます。

@AutoWired: 依存Beanを自動的にインポートします。byTypeメソッド。構成済みのBeanを使用して、属性とメソッドのアセンブリを完了します。クラスメンバーの変数、メソッド、およびコンストラクターに注釈を付けて、自動アセンブリを完了できます。(required = false)を追加すると、Beanが見つからなくてもエラーは報告されません。

@Qualifier: 同じタイプのBeanが複数ある場合は、@ Qualifier( "name")を使用して指定できます。@Autowiredと組み合わせて使用​​されます。@Qualifier修飾記述子は、名前に従って挿入できるだけでなく、候補の選択方法をよりきめ細かく制御するためにも使用できます。具体的な使用法は次のとおりです。

@Autowired
@Qualifier(value = “demoInfoService”)
private DemoInfoService demoInfoService;

@Resource(name =” name”、type =” type”): 角かっこで囲まれたコンテンツがない場合、デフォルトはbyNameです。@Autowiredで同様のことを行います。

3、JPAアノテーション

@Entity: @Table(name = ""): これがエンティティクラスであることを示します。通常、jpaで使用され、これら2つのアノテーションは通常一緒に使用されますが、テーブル名とエンティティクラス名が同じ場合は、@ Tableを省略できます。

@MappedSuperClass: 親クラスであるエンティティを決定するために使用されます。親クラスのプロパティは、サブクラスに継承できます。

@NoRepositoryBean: 通常、親クラスのリポジトリとして使用されます。このアノテーションを使用すると、Springはリポジトリをインスタンス化しません。

@Column: フィールド名が列名と同じ場合は、省略できます。

@Id: 属性が主キーであることを示します。

@GeneratedValue(strategy = GenerationType.SEQUENCE、generator = "repair_seq"): 主キー生成戦略がシーケンスであることを示します(Auto、IDENTITY、nativeなど、Autoは複数のデータベース間で切り替えることができることを意味します)、指定されたシーケンスの名前はrepair_seqです。

@SequenceGeneretor(name = "repair_seq"、sequenceName = "seq_repair"、allocationSize = 1):  nameは使用するシーケンスの名前、sequenceNameはデータベースのシーケンス名であり、2つの名前は同じにすることができます。

@Transient: この属性がデータベーステーブルのフィールドへのマッピングではなく、ORMフレームワークがこの属性を無視することを示します。属性がデータベーステーブルのフィールドマッピングでない場合は、@ Transientとしてマークする必要があります。そうでない場合、ORMフレームワークはそのアノテーションをデフォルトで@Basicとしてマークします。@ Basic(fetch = FetchType.LAZY):タグはエンティティ属性のロード方法を指定できます

@JsonIgnore:この 関数は、jsonのシリアル化、シリアル化、および逆シリアル化が影響を受ける場合に、JavaBeanの一部のプロパティを無視することです。

@JoinColumn(name =” loginId”):  1対1:別のテーブルを指すこのテーブルの外部キー。1対多:別のテーブルがこのテーブルの外部キーを指しています。

@ OneToOne、@ OneToMany、@ ManyToOne: 休止状態の構成ファイル内の1対1、1対多、および多対1に対応します。

4つのspringMVC関連ソリューション

@RequestMapping:  @RequestMapping( "/ path")は、コントローラーが "/ path"のすべてのURL要求を処理することを意味します。RequestMappingは、リクエストアドレスマッピングを処理するために使用されるアノテーションであり、クラスまたはメソッドで使用できます。クラスで使用されるということは、要求に応答するクラス内のすべてのメソッドがこのアドレスを親パスとして使用することを意味します。注釈には6つの属性があります。

  • params:メソッドが処理される前に特定のパラメーター値をリクエストに含める必要があることを指定します。
  • ヘッダー:メソッドがリクエストを処理するには、指定されたリクエストに特定の指定されたヘッダー値が含まれている必要があります。
  • 値:リクエストの実際のアドレスを指定します。指定したアドレスはURIテンプレートモードにすることができます
  • method:リクエストのメソッドタイプ、GET、POST、PUT、DELETEなどを指定します。
  • 消費:application / json、text / htmlなど、リクエストを処理するためのコンテンツタイプ(Content-Type)を指定します。
  • 生成:返されるコンテンツのタイプを指定し、リクエストヘッダーの(Accept)タイプに指定されたタイプが含まれている場合にのみ返されます

@RequestParam: メソッドパラメーターの前で使用されます。

@RequestParam String a = request.getParameter(“ a”)。

@PathVariable: パス変数。といった

RequestMapping(“user/get/mac/{macAddress}”)
public String getByMacAddress(@PathVariable String macAddress){
    //do something;
}

パラメータは中括弧内の名前と同じである必要があります。

5つのグローバル例外処理

@ControllerAdvice:@Component が含まれています。スキャンできます。例外を均一に処理します。

@ExceptionHandler(Exception.class): この例外が発生したときに次のメソッドが実行されることを示すために、メソッドで使用されます。

おすすめ

転載: blog.csdn.net/baidu_39322753/article/details/104657960