一、注記(annotations)リスト
@SpringBootApplication: @ComponentScan、@Configuration、および@EnableAutoConfigurationアノテート アイテムが含まれています。 その中で@ComponentScanは、spring Boot が Configuration クラスにスキャンし、プログラム コンテキストに追加できるようにします。
@Configurationは spring の XML 構成ファイルと同じであり、Java コードを使用してタイプ セーフをチェックできます。
@ComponentScanコンポーネント スキャンは、いくつかの Bean を自動的に検出してアセンブルします。
@ComponentCommandLineRunner で動作し、プログラムの開始後にいくつかの基本的なタスクを実行できます。
@RestControllerアノテート アイテムは、@Controllerと@ResponseBodyの集合であり、これがコントローラ Bean であり、関数の戻り値を HTTP 応答に直接入力し、REST スタイルのコントローラであることを示します。
@Autowired自動インポート。
@PathVariableパラメーターを取得します。
@JsonBackReferenceネストされた外鎖の問題を解決します。
@RepositoryRestResourcepublic合致spring-boot-starter-data-rest 使用。
ii. 注解(annotations)詳細解
@SpringBootApplication:spring boot がプログラムに必要な構成を自動的に実行できるようにすることを確認し、@Configuration、@EnableAutoConfiguration、および @ComponentScan の 3 つの構成と同じになります。
パッケージコム.example.myプロジェクト;をクリックします。を使用します。 @SpringBootApplication// @Configuration @EnableAutoConfiguration @ComponentScanと同じアプリケーション{ パブリック静的voidmain(文字列[]args){スプリングアプリケーション.run(アプリケーション.class、args); }
@ResponseBody: メソッドの返される結果が HTTP response body に直接書き込まれ、通常は RESTful の api を構築するために非同期でデータを取得するときに使用されます。 @RequestMappingを使用した後、戻り値は通常ジャンプ パスに解決され、@responsebodyを加えた結果はジャンプ パスに解決されず、HTTP response body に直接書き込まれます。 たとえば、json データを非同期に取得し、@responsebodyすると、json データが直接返されます。 アノテート アイテムは、通常、@RequestMappingと共に使用されます。 サンプル コード:
@RequestMapping("/test")@ResponseBodyパブリック文字列 test(){return"ok" ; }
@Controller: コントローラ クラスを定義するために使用され、spring プロジェクトでは、コントローラがユーザーからの URL 要求@RequestMappingを対応するサービス インターフェイス (service 層) に転送します。 サンプル コード:
@Controller@RequestMapping(“/demoInfo”)publicclass DemoController {@AutowiredprivateDemoInfoService demoInfoService; @RequestMapping("/hello")publicStringhello(Map map){System.out.println("DemoController.hello()"); map.put("hello","from TemplateController.helloHtml"); //hello.htmlまたはhello.ftlテンプレートを用いるレンダリング表示を行う. return"/hello"; }}
@RestController: struts のアクションなどのコントロール レイヤ コンポーネント、@ResponseBody、および@Controllerのセットをラベル付けするために使用します。 サンプル コード:
ウェブ;を要求します。 をクリックします。 @RestController @RequestMapping ("/demoInfo2") パブリッククラス DemoController2 { @RequestMapping ("/テスト") パブリック文字列 test(){ 戻り "ok" ; } }
@RequestMapping: Controller 内の特定の関数への URL のマッピングを担当するルーティング情報を提供します。
@EnableAutoConfiguration:Spring Boot 自動構成(auto-configuration): 追加した jar 依存関係に基づいて Sppring アプリを自動的に構成してみてください。 たとえば、classpath の下に HSQLDB があり、データベース接続 Beans を手動で構成していない場合は、自動的にメモリ型 (in-memory) データベースを構成します。 @EnableAutoConfigurationまたは@SpringBootApplicationアノテート アイテムを@Configuration クラスに追加して、自動構成を選択できます。 不要な特定の自動構成クラスが適用されている場合は、アノテート アイテム@EnableAutoConfiguration除外プロパティを使用して無効にすることができます。
@ComponentScan: スキャン コンポーネントがクラスによって自動的に検出されるようにします。 個人的な理解は、@Component、@Controller、@Serviceなどの注釈を持つクラスをスキャンし、Bean として登録すると、@Configurationクラスを含むすべての Spring コンポーネントを自動的に収集できることを理解しています。 @ComponentScanアノテート アイテムを使用して Beans を検索し、アノテート アイテムのインポートを@Autowired頻繁に使用します。 @Configurationクラスを含むすべての Spring コンポーネントを自動的に収集できます。 @ComponentScanアノテート アイテムを使用して Beans を検索し、アノテート アイテムのインポートを@Autowired頻繁に使用します。 設定がない場合、Spring Boot は、スタートアップ クラスが存在するパッケージの下、およびサブパッケージの下に@Serviceを使用し、@Repositoryなどの注釈を使用するクラスをスキャンします。
@Configuration: 従来の xml プロファイルと同等であり、一部のサード パーティのライブラリで xml ファイルを使用する必要がある場合は、@Configuration クラスをプロジェクトの構成マスター クラスとして@ImportResource使用することをお勧めします。
@Import: 追加の構成クラスをインポートするために使用します。
@ImportResource: xml プロファイルを読み込むために使用します。
@Autowired: 依存 Bean を自動的にインポートします
@Service: 一般に、service レイヤーを装飾するために使用されるコンポーネント
@Repository: @Repositoryアノテート アイテムを使用すると、DAO または repositories が例外トランスクリプションを提供し、このアノテート アイテムで装飾された DAO または repositories クラスが ComponetScan によって検出および構成され、XML 構成項目を提供する必要がないようにすることができます。
@Bean: @Beanラベル方式で XML で構成された Bean と同等です。
@Value:注入Spring boot application.properties 構成の属性の値。 サンプル コード:
@Value (値 = "#{メッセージ}") プライベート文字列メッセージ;
@Inject: デフォルトの@Autowiredと等価であり、required属性はありません。
@Component: コンポーネントが分類に良くない場合に、このアノテート アイテムを使用してラベルを付けることができるコンポーネントの一般的な意味です。
@Bean: XML に相当し、クラスではなくメソッドの上に配置され、Bean を生成し、spring 管理に渡すことを意味します。
@AutoWired: 依存 Bean を自動的にインポートします。 byType 方式。 構成された Bean を使用して、属性とメソッドのアセンブルを完了し、クラス メンバー変数、メソッド、およびコンストラクターにラベルを付け、自動アセンブリ作業を完了できます。 (required=false) を加算すると、Bean が見つからない場合でもエラーは報告されません。
@Qualifier: 同じタイプの Bean が複数ある場合は、@Qualifier ("name") で指定できます。 @Autowiredで使用します。 修飾記述子@Qualifier名前に基づいて挿入できるだけでなく、よりきめ細かな制御が候補をどのように選択するかは、次のように使用されます。
@Autowired@Qualifier (値 = "デモ情報サービス") プライベートデモインフォサービス デモインフォサービス;
@Resource(name="name",type="type"): 括弧内の内容がない場合、デフォルトの byName。 @Autowiredと同じようなことをする。
III. JPA 注釈
@Entity:@Table(name=""): これはエンティティークラスであることを示します。 jpa の 2 つのアノテート アイテムは、通常、一般的に 1 つのブロックで使用されますが、テーブル名とエンティティ クラス名が同じ場合は省略@Table
@MappedSuperClass: 親クラスであると判断されるentityで使用されます。 親クラスのプロパティ サブクラスは継承できます。
@NoRepositoryBean: 一般に親クラスとして使用されるrepository,このアノテーションがあり,springはそのrepositoryをインスタンス化しない.
@Column: フィールド名が列名と同じ場合は省略できます。
@Id: プロパティが主キーであることを示します。
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "repair_seq"): 主キー生成ポリシーが sequence (Auto、IDENTITY、native など、Auto は複数のデータベース間で切り替えることができることを示します) であることを示し、sequence の名前を指定しますrepair_ seq。
@SequenceGeneretor (name = "repair_seq", sequenceName = "seq_repair", allocationSize = 1): name は sequence の名前で、sequenceName はデータベースの sequence 名であり、2 つの名前は一貫している可能性があります。
@Transient: プロパティがデータベース テーブルのフィールドへのマッピングではないことを示し、ORM フレームワークはプロパティを無視します。 プロパティがデータベース テーブルのフィールド マップでない場合は、@Transientとしてマークすることが重要@Basicです。 @Basic(fetch=FetchType.LAZY): タグは、エンティティ プロパティの読み込み方法を指定できます
@JsonIgnore:json がシリアル化するときに Java Bean の一部のプロパティを無視し、シリアル化と逆シリアル化の両方が影響を受けます。
@JoinColumn (name="loginId"): 1 対 1: この表の別のテーブルを指す外部キー。 一対多: 別のテーブルがこのテーブルの外部キーを指しています。
@OneToOne、@OneToMany、@ManyToOne:hibernate プロファイルの 1 対 1、1 対多、多対 1 に対応します。
IV. springMVC は解に注目します
@RequestMapping: @RequestMapping ("/path") は、コントローラがすべての "/path" の URI 要求を処理することを示します。 RequestMapping は、クラスまたはメソッドで使用できる要求アドレス マッピングを処理するアノテート アイテムです。 クラスでは、クラス内のすべての応答要求を表すメソッドは、そのアドレスを親パスとして使用します。 アノテート アイテムには、params: メソッドが処理する前に、request に特定のパラメーター値を含める必要があることを指定する 6 つのプロパティがあります。 headers: メソッドが要求を処理できるようにするには、request に指定された header 値が含まれている必要があることを指定します。 value: 要求の実際のアドレスを指定し、指定したアドレスはURI Template モードmethod: 要求の method タイプ、GET、POST、PUT、DELETE などのconsumesを指定します。 application/json、text/html などの要求を処理する送信コンテンツ タイプ (Content-Type) を指定します。 produces: 返されるコンテンツタイプを指定し、request 要求ヘッダーの (Accept) 型にその指定した型が含まれている場合にのみ返されます
@RequestParam: メソッドの引数の前に使用されます。 @RequestParam String a =request.getParameter(“a”)。
@PathVariable: パス変数。 など
要求マッピング("ユーザー/取得/mac/{macAddress}))パブリック文字列取得ByMacAddress(@PathVariableString macAddress){//do 何か;}
引数は、中かっこ内の名前と同じです。
v. グローバル例外処理
@ControllerAdvice: @Componentが含まれています。 にスキャンすることができます。 例外を統一的に処理します。
@ExceptionHandler(Exception.class): この例外が発生したことをメソッドに示すには、次のメソッドを実行します。