ホームページ よくある問題 springboot の一般的なアノテーションは何ですか?

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

Apr 10, 2019 pm 01:10 PM
springboot 注釈

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 の に相当します。クラスではなくメソッドの上に配置されます。つまり、 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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Redis を使用して SpringBoot に分散ロックを実装する方法 Redis を使用して SpringBoot に分散ロックを実装する方法 Jun 03, 2023 am 08:16 AM

1. Redis は分散ロックの原則を実装しており、分散ロックが必要な理由 分散ロックについて話す前に、分散ロックが必要な理由を説明する必要があります。分散ロックの反対はスタンドアロン ロックです。マルチスレッド プログラムを作成するとき、共有変数を同時に操作することによって引き起こされるデータの問題を回避します。通常、ロックを使用して共有変数を相互に除外し、データの正確性を確保します。共有変数の使用範囲は同じプロセス内です。共有リソースを同時に操作する必要があるプロセスが複数ある場合、どうすれば相互排他的になるのでしょうか?今日のビジネス アプリケーションは通常マイクロサービス アーキテクチャであり、これは 1 つのアプリケーションが複数のプロセスをデプロイすることも意味します。複数のプロセスが MySQL の同じレコード行を変更する必要がある場合、順序の乱れた操作によって引き起こされるダーティ データを避けるために、分散が必要です。今回導入するスタイルはロックされています。ポイントを獲得したい

Springbootがjarパッケージにファイルを読み込んだ後にファイルにアクセスできない問題を解決する方法 Springbootがjarパッケージにファイルを読み込んだ後にファイルにアクセスできない問題を解決する方法 Jun 03, 2023 pm 04:38 PM

Springboot はファイルを読み取りますが、jar パッケージにパッケージ化した後、最新の開発にアクセスできません。jar パッケージにパッケージ化した後、Springboot がファイルを読み取れない状況があります。その理由は、パッケージ化後、ファイルの仮想パスが変更されるためです。は無効であり、ストリーム経由でのみアクセスできます。読み取ります。ファイルはリソースの下にあります publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

SQL ステートメントを使用せずに Springboot+Mybatis-plus を実装して複数のテーブルを追加する方法 SQL ステートメントを使用せずに Springboot+Mybatis-plus を実装して複数のテーブルを追加する方法 Jun 02, 2023 am 11:07 AM

Springboot+Mybatis-plus が SQL ステートメントを使用して複数テーブルの追加操作を実行しない場合、私が遭遇した問題は、テスト環境で思考をシミュレートすることによって分解されます: パラメーターを含む BrandDTO オブジェクトを作成し、パラメーターをバックグラウンドに渡すことをシミュレートします。 Mybatis-plus で複数テーブルの操作を実行するのは非常に難しいことを理解してください。Mybatis-plus-join などのツールを使用しない場合は、対応する Mapper.xml ファイルを設定し、臭くて長い ResultMap を設定するだけです。対応する SQL ステートメントを記述します。この方法は面倒に見えますが、柔軟性が高く、次のことが可能です。

SpringBootとSpringMVCの比較と差異分析 SpringBootとSpringMVCの比較と差異分析 Dec 29, 2023 am 11:02 AM

SpringBoot と SpringMVC はどちらも Java 開発で一般的に使用されるフレームワークですが、それらの間には明らかな違いがいくつかあります。この記事では、これら 2 つのフレームワークの機能と使用法を調べ、その違いを比較します。まず、SpringBoot について学びましょう。 SpringBoot は、Spring フレームワークに基づいたアプリケーションの作成と展開を簡素化するために、Pivo​​tal チームによって開発されました。スタンドアロンの実行可能ファイルを構築するための高速かつ軽量な方法を提供します。

JUnit フレームワークのテスト メソッドにアノテーションはどのように使用されますか? JUnit フレームワークのテスト メソッドにアノテーションはどのように使用されますか? May 06, 2024 pm 05:33 PM

JUnit フレームワークのアノテーションは、テスト メソッドの宣言と構成に使用されます。主なアノテーションには、@Test (テスト メソッドの宣言)、@Before (テスト メソッドの実行前に実行されるメソッド)、@After (テスト メソッドの後に実行されるメソッド) があります。が実行される)、@ BeforeClass (すべてのテスト メソッドが実行される前に実行されるメソッド)、@AfterClass (すべてのテスト メソッドが実行された後に実行されるメソッド)、これらのアノテーションは、テスト コードを整理して簡素化し、テスト コードの信頼性を向上させるのに役立ちます。明確な意図と構成を提供することで、読みやすさと保守性を向上させます。

PHP コードドキュメントの王様: PHPDoc の上級ガイド PHP コードドキュメントの王様: PHPDoc の上級ガイド Mar 02, 2024 am 08:43 AM

はじめに: PHPDoc は、理解しやすく有益なドキュメントを作成する PHP コードのコメント標準です。 PHPDoc では、特定のコメント タグを使用することで、開発者が関数、クラス、メソッド、その他のコード要素に関する重要な詳細を提供できるようになります。この高度なガイドでは、PHPDoc を詳しく説明し、その機能を実証し、効果的な文書化戦略を提供します。構文とタグ: PHPDoc コメントは二重スラッシュ (//) または複数行コメント (/**/) で始まります。一般的なアノテーション タグをいくつか示します。 @param: 関数またはメソッドのパラメータを定義します。 @return: 関数またはメソッドの戻り値を指定します。 @throws: 関数またはメソッドによってスローされる可能性のある例外について説明します。 @var: クラスの属性またはインスタンスを定義します

SpringBoot が Redis をカスタマイズしてキャッシュのシリアル化を実装する方法 SpringBoot が Redis をカスタマイズしてキャッシュのシリアル化を実装する方法 Jun 03, 2023 am 11:32 AM

1. RedisAPI のデフォルトのシリアル化メカニズムである RedisTemplate1.1 をカスタマイズします。API ベースの Redis キャッシュ実装では、データ キャッシュ操作に RedisTemplate テンプレートを使用します。ここで、RedisTemplate クラスを開いて、クラスのソース コード情報を表示します。publicclassRedisTemplateextendsRedisAccessorimplementsRedisOperations、BeanClassLoaderAware{//キーを宣言、値の各種シリアル化メソッド、初期値は空 @NullableprivateRedisSe

Springbootでapplication.ymlの値を取得する方法 Springbootでapplication.ymlの値を取得する方法 Jun 03, 2023 pm 06:43 PM

プロジェクトでは、構成情報が必要になることがよくありますが、この情報はテスト環境と本番環境で構成が異なる場合があり、実際のビジネス状況に基づいて後で変更する必要がある場合があります。これらの構成をコードにハードコーディングすることはできません。構成ファイルに記述することをお勧めします。たとえば、この情報を application.yml ファイルに書き込むことができます。では、コード内でこのアドレスを取得または使用するにはどうすればよいでしょうか?方法は2つあります。方法 1: @Value アノテーションが付けられた ${key} を介して、構成ファイル (application.yml) 内のキーに対応する値を取得できます。この方法は、マイクロサービスが比較的少ない状況に適しています。方法 2: 実際には、プロジェクト、業務が複雑な場合、ロジック