JavaSpringBootアノテーションの使用法の詳細な説明

1、@ SpringBootApplication

この注釈は、Spring Bootのコア注釈であり、Spring Bootクラスのメインクラスで使用され、これがSpring Bootアプリケーションであることを識別し、SpringBootのさまざまな機能を有効にするために使用されます。実際、この注釈は、@ Configuration、@ EnableAutoConfiguration、および@ComponentScanの3つの注釈の組み合わせです。これらの注釈は通常一緒に使用されるため、SpringBootは統合された注釈@SpringBootApplicationを提供します。

2、@ EnableAutoConfiguration

Spring Bootが自動的に注釈を構成できるようにします。この注釈をオンにすると、SpringBootは現在のクラスパスの下にあるパッケージまたはクラスに従ってSpringBeanを構成できます。

たとえば、現在のクラスパスの下にMybatis JARパッケージがあり、MybatisAutoConfigurationアノテーションは、関連するパラメータに従ってMybatisの各SpringBeanを構成できます。

@EnableAutoConfigruationを実現するための鍵は、AutoConfigurationImportSelectorの導入です。そのコアロジックはselectImportsメソッドです。ロジックはおおまかに次のとおりです。

  • 構成ファイルMETA-INF / spring.factoriesからすべての可能な自動構成クラスをロードします。
  • 重複を削除し、excludeおよびexcludeName属性によって運ばれるクラスを除外します。
  • フィルタリングし、条件を満たす自動構成クラスを返します(@Conditional);

3、@ Configuration 

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

4、@ ComponentScan 

コンポーネントのスキャン。Sping BootをConfigurationクラスにスキャンして、プログラムコンテキストに追加します。

@ComponentScanアノテーションは、デフォルトで@ Controller、@ Service、@ Repository、および@Componentアノテーションクラスをスプリングコンテナにアセンブルします。

5、@リポジトリ

データアクセスコンポーネント、つまりDAOコンポーネントにラベルを付けるために使用されます。

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

6、@ Serivece

通常、サービスレイヤーのコンポーネントを変更するために使用されます。

7、@ RestController

コントロールレイヤーコンポーネント(ストラットでのアクションなど)をマークするために使用され、これがコントローラーBeanであることを示し、関数の戻り値は、RESTスタイルのコントローラーであるHTTP応答本文に直接入力されます。これは@Controllerおよび@ResponseBodyです。コレクション。

8、@ ResponseBody

このメソッドの戻り結果がHTTP応答本文に直接書き込まれることを示します

通常、非同期でデータを取得する場合に使用されます。@ RequestMappingを使用した後、戻り値は通常ジャンプパスとして解析されます。@ responsebodyを追加した後、戻り結果は転送パスとして解析されません。20はHTTP応答本文に直接書き込まれます。たとえば、jsonデータを非同期で取得するには、@ responsebodyを追加した後、jsonデータが直接返されます。

9、@ Component

コンポーネント全般を指します。コンポーネントが適切に分類されていない場合は、この注釈を注釈に使用できます。

10、@ Bean

これは、XMLの<bean> </ bean>と同等であり、クラスではなくメソッドの上に配置されます。つまり、Beanは生成され、Springによって管理されません。

11、@ AutoWired

byTypeメソッド。構成済みのBeanを使用して、属性とメソッドのアセンブリを完了します。クラスメンバーの変数、メソッド、およびコンストラクターに注釈を付けて、自動アセンブリを完了できます。

(required = false)を追加すると、Beanが見つからなくてもエラーは報告されません。

12、@修飾子

同じタイプのBeanが複数ある場合は、@ Qualifier( "name")を使用して指定し、@ Autoworedで使用できます。

13、@ Resource(name = "name"、type = "type")

括弧がない場合、byNameがデフォルトです。@Autoworedに似ています。

14、@ RequestMapping

RequestMappingは、要求アドレスマッピングを処理するために使用される注釈です。ルーティング情報を提供し、クラスまたはメソッドで使用できるコントローラー内の特定の関数へのURLのマッピングを担当します。クラスで使用されるということは、要求に応答するクラス内のすべてのメソッドがこのアドレスを親パスとして使用することを意味します。

 15、@ RequestParam

メソッドパラメータの前で使用:

@RequestParam String a =request.getParameter("a")

16 @ @ PathVariable

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

RequestMapping("user/get/mac/{macAddress}")

public String getByMacAddress(@PathVariable String macAddress){
    //do something;
}

17、@ Profiles

Spring Profilesは、アプリケーション構成を分離し、これらの構成を特定の環境でのみ有効にする方法を提供します。@Componentまたは@Configurationは@Profileでマークできるため、ロードする時間が制限されます。

@Configuration
@Profile("prod")
public class ProductionConfiguration{
    //do something;
}

18、@ ConfigurationProperties

Spring Bootは、注釈を使用して、カスタムプロパティファイルをconfig.propertiesファイルなどのエンティティBeanにマップできます。

@Data
@ConfigurationProperties("rocketmq.consumer")
public class RocketMQConsumerProperties extends RocketMQProperties {
    private boolean enabled = true;
    private String consumerGroup;
    private MessageModel messageModel = MessageModel.CLUSTERING;
    private ConsumeFromWhere consumeFromWhere = ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET;
    private int consumeThreadMin = 20;
    private int consumeThreadMax = 64;
    private int consumeConcurrentlyMaxSpan = 2000;
    private int pullThresholdForQueue = 1000;
    private int pullInterval = 0;
    private int consumeMessageBatchMaxSize = 1;
    private int pullBatchSize = 32;
}

 

 

 

 

おすすめ

転載: blog.csdn.net/li_w_ch/article/details/108661495