ホームページ  >  記事  >  springboot の一般的なアノテーションは何ですか?

springboot の一般的なアノテーションは何ですか?

青灯夜游
青灯夜游オリジナル
2019-04-10 13:10:5192840ブラウズ

springboot で一般的に使用されるアノテーションには、1. SpringBootApplication、2. リポジトリ、3. サービス、4. RestController、5. ResponseBody、6. コンポーネントなどがあります。

springboot の一般的なアノテーションは何ですか?

springboot で一般的に使用されるアノテーションは次のとおりです:

1、@SpringBootApplication

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

2. @EnableAutoConfiguration

Spring Boot によるアノテーションの自動構成を許可します。このアノテーションをオンにすると、Spring Boot は現在のパッケージまたはクラスに基づいて Spring を構成できるようになります。クラスパス。Bean。

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

@EnableAutoConfiguration の実装の鍵は、AutoConfigurationImportSelector の導入です。そのコア ロジックは selectImports メソッドです。ロジックは大まかに次のとおりです:

● 構成ファイルからすべての可能なコンポーネントをロードします。 META-INF/spring.factories 自動構成クラス;

# 重複を削除し、exclude および excludeName 属性によって保持されるクラスを除外します。

##● 条件 (@) を満たす自動構成クラスをフィルターして返します。条件付き);

3. @Configuration

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

4. @ComponentScan

コンポーネント スキャン。 Spring Boot で Configuration クラスをスキャンし、それをプログラム コンテキストに追加します。

@ComponentScan アノテーションは、@Controller、@Service、@Repository、および @Component のアノテーションが付けられたクラスをデフォルトで Spring コンテナーにアセンブルします。

5、@Repository

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

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

#6, @Service# 通常、サービス層のコンポーネントを変更するために使用されます

#7, @RestController

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

8、@ResponseBody

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

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

9. @Component

はコンポーネント全般を指します。コンポーネントの分類が難しい場合は、このアノテーションを使用してコンポーネントに注釈を付けることができます。

10. @Bean

は、XML の 60e23eb984d18edbb092da6b8f295aba4bb0e59fd50cbfe6f6ce2215b9d94243 に相当します。クラスではなくメソッドの上に配置されます。つまり、 A Bean を生成し、Spring によって管理されます。

11、@AutoWired

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

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

12. @Qualifier

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

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

と組み合わせて使用​​されます。括弧内にコンテンツがない場合は、byNameデフォルトで使用されます。 @Autowired を使用して同様のことを行います。

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 プロファイルは、アプリケーション構成を分離し、これらの構成が特定の環境でのみ有効になるようにする方法を提供します。

任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

@Configuration
@Profile("prod")
public class ProductionConfiguration {
    // ...
}

18、@ConfigurationProperties

Spring Boot可使用注解的方式将自定义的properties文件映射到实体bean中,比如config.properties文件。

@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;
}

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上がspringboot の一般的なアノテーションは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。