ホームページ  >  記事  >  Java  >  spring および springboot アノテーションの簡単な分析

spring および springboot アノテーションの簡単な分析

不言
不言転載
2018-10-15 16:03:292244ブラウズ

この記事の内容は spring と springboot の注釈に関するもので、必要な方は参考にしていただければ幸いです。

@ConfigurationProperties

リソース ファイルのコンテンツをオブジェクトにバインドすると非常に便利です

@Value( "${app.name}")

単純な値を注入します

@Import

インポートを通じて springIOC にインスタンスを追加します次のように @Import アノテーションをコンテナ内の

/**
 * 定义一个圆形
 *
 * @author zhangqh
 * @date 2018年5月1日
 */
public class Circular {
}
/**
 * 定义一个正方形
 *
 * @author zhangqh
 * @date 2018年5月1日
 */
public class Square {
}

MainConfig アノテーション構成にインポートします:

@Import({Square.class,Circular.class})
@Configuration
public class MainConfig
AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(MainConfig.class);
String[] beanNames = applicationContext2.getBeanDefinitionNames();
for(int i=0;i<beanNames.length;i++){
    System.out.println("bean名称为==="+beanNames[i]);
}

実行結果:

bean名称为===mainConfig
bean名称为===com.zhang.bean.Square
bean名称为===com.zhang.bean.Circular

@RequestMapping

このアノテーションはクラスおよびメソッドで使用でき、たとえば、クラスがデモでメソッドが /demo1 の場合、アクセス パスは demo/demo1

# になります。 ##このアノテーションには 6 つの属性があります。 :

params: 指定されたリクエストは、このメソッドで処理される前に特定のパラメータ値を含む必要があります。

headers: このメソッドがリクエストを処理するには、指定されたリクエストに特定の指定されたヘッダー値が含まれている必要があります。
value: リクエストの実際のアドレスを指定します。指定されたアドレスは URI テンプレート モードにすることができます。
method: リクエストのメソッド タイプ (GET、POST、PUT、DELETE など) を指定します。
consumes: 指定します。 application/json、text/html など、リクエストを処理するための送信コンテンツ タイプ (Content-Type)。
Produces: リクエスト ヘッダーの (Accept) タイプに返されるコンテンツ タイプを指定します。指定された型は返されますか

@PathVariable

パスに対応する変数。パラメータの前に使用されます。パス上の変数名は一致している必要があります。パラメータ名

RequestMapping("demo/demo1/{name}")public String say(@PathVariable String name){
}

@RequestParam

は次のコードと同じ効果があります

String name =request.getParameter("name ")。

@RequestBody

は、メソッド パラメーターが HTTP リクエスト本文にバインドされており、フロントエンドがフォームで送信できないため、JSON で送信する必要があることを意味します。 。

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
   //可以绑定自定义的对象类型
}

@ResponseBody

は、出力が json 形式のデータであることを意味します。

@ModelAttribute

1. パラメータに適用すると、クライアントから渡されたパラメータが指定されたオブジェクトに名前で挿入され、オブジェクトが自動的に追加されます。 . ModelMap、View レイヤーで使いやすい;

2. メソッドに適用すると、戻り値がある場合は、各メソッドの前に実行されます。

@Bean

は、XML の 60e23eb984d18edbb092da6b8f295aba4bb0e59fd50cbfe6f6ce2215b9d94243 に相当します。これは、Bean を生成し、Spring 管理者に引き渡すことを意味します。

@Qualifier

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

@Autowired

と組み合わせて使用​​します。 Spring の org.springframework.beans.factory.annotation パッケージに属し、属性、コンストラクターを提供するために使用できます。 、値注入のメソッド

@Resource

は Spring アノテーションに属していませんが、java.annotation パッケージの下にある JSR-250 からのものです。このアノテーションを次のように使用します。ターゲット Bean を指定します。

@Resource は @Autowired と同等であり、フィールドまたは属性の setter メソッドに注釈を付けることができます。

注:

@Autowired アノテーションは、デフォルトでタイプごとにアセンブルされます。コンテナに同じタイプの Bean が複数含まれている場合、指定されたタイプの Bean が見つからないという例外が報告されます。解決策 @Qualified アノテーションと組み合わせて修飾され、注入された Bean 名を指定します。

@Resource name 属性が指定されておらず、デフォルト名に従って依存オブジェクトが見つからない場合、@Resource アノテーションは型によるアセンブリにフォールバックします。ただし、name 属性を指定すると、名前によってのみアセンブルできます。

@Autowired アノテーションは、特に複数の Bean タイプがアセンブルされている場合、アセンブリ時に簡単に例外をスローする可能性があります。解決策は @Qualified を追加して制限することです。

コンポーネントクラスのアノテーション

@コンポーネント: 標準の通常の Spring Bean クラス。

@リポジトリ: DAO コンポーネント クラスをマークします。

@Service: ビジネス ロジック コンポーネント クラスをマークします。
@Controller: コントローラー コンポーネント クラスをマークします。

@コンポーネントは、@Repository、@Service、および @Controller を置き換えることができます。これらの 3 つのアノテーションは @Component によってアノテーションが付けられるためです。アノテーションが付けられた Java クラスは Bean インスタンスとして扱われ、Bean インスタンスの名前はデフォルトで Bean クラスの最初の文字が小文字になり、他の部分は変更されません。 @Service は Bean 名をカスタマイズすることもできますが、一意である必要があります。

@SpringBootApplication

通常、起動クラスで使用される @Configuration、@EnableAutoConfiguration、@ComponentScan

が含まれます。


#@ComponentScan

コンポーネント スキャン。 @Component @Controller @Service およびその他のアノテーションを持つクラスがスキャンされると、これらのクラスは Bean として登録されます。

@Configuration

このクラスが Bean 設定の情報源であることを示します。これは XML の 3c9fdce8078791299ca92e41bddc2b8fa6748f3712e7c0e1f60ffca24b3db7b0 に相当します。通常、メインクラスのスーペリアに追加されます。

@EnableAutoConfiguration

アプリケーションによって宣言された依存関係 (通常はメイン クラスに追加される) に基づいて Spring Boot が Spring フレームワークを自動的に構成できるようにします。

@Profiles
Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。
任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

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

以上がspring および springboot アノテーションの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。