Spring Annotation

@Transactional

  • 属性(ぞくせい)

rollbackFor:トランザクションをロールバックさせる例外(れいがい) タイプを指定(してい) します。デフォルトでは RuntimeException のみロールバックされます。チェックされる例外(れいがい) も含めるには rollbackFor = Exception.class追加(ついか)推奨(すいしょう) します。

バリデーション

  • @NotNull:プリミティブ(がた) (よう)
  • @NotEmpty:コレクションや配列用(はいれつよう)
  • @NotBlank文字列用(もじれつよう)空白(くうはく)(のぞ) く)。
  • @Min / @Max数値制限(すうちせいげん)
  • @Email:メールアドレス形式。
  • @Past / @Future日付制限(ひづけせいげん)

JPA

@Modifying

@Query強化(きょうか) し、INSERT, UPDATE, DELETE, DDL をサポートさせます。

@Lock

  • LockModeType.PESSIMISTIC_WRITE悲観的(ひかんてき) ロック。

フェッチ

関連(かんれん) タイプアノテーションデフォルト FetchType推奨(すいしょう) される方法(ほうほう)
多対一(たたいち)@ManyToOneEAGERLAZY に変更(へんこう) し、Join Fetch を併用(へいよう)
一対一(いったいいち)@OneToOneEAGERLAZY を検討(けんとう)
一対多(いったいた)@OneToManyLAZYLAZY を維持(いじ) し、EntityGraph を併用(へいよう)
多対多(たたいた)@ManyToManyLAZYLAZY を維持(いじ)

用語集


フレームワーク

依存性注入

  • @Autowired(がた) による自動配線(じどうはいせん)
  • @Resource名前(なまえ) による自動配線(じどうはいせん)
  • @Qualifier具体的(ぐたいてき) な Bean ID を指定(してい)
  • @Value外部設定(がいぶせってい)注入(ちゅうにゅう)

@Resource vs @Autowired

アノテーション出典(しゅってん)配線(はいせん) ルール推奨(すいしょう)
@ResourceJSR-250(標準(ひょうじゅん)名前(なまえ) (Name)優先(ゆうせん)フレームワーク移植時(いしょくじ)使用(しよう)
@AutowiredSpring 専用(せんよう)(かた) (Type)優先(ゆうせん)Spring プロジェクトで推奨(すいしょう)機能(きのう)豊富(ほうふ)

スコープ

  • singleton単一(たんいつ) インスタンス(デフォルト)。
  • prototype:リクエストごとに新規作成(しんきさくせい)
  • request:HTTP リクエストごと。
  • session:HTTP セッションごと。

AOP

名称(めいしょう)説明(せつめい)
通知(つうち) (Advice)ログやトランザクションなど、インターセプト()実行(じっこう) されるコード。
切入点(きりこみてん) (Pointcut)どの連結点(れんけつてん) をインターセプトするかを定義(ていぎ)
切面(きりめん) (Aspect)Pointcut + Advice組み合わせ(くみあわせ)
編み込み(あみこみ) (Weaving)アスペクトをターゲットに適用(てきよう) し、プロキシを作成(さくせい) するプロセス。

通知タイプ

  • @Before:メソッド実行前(じっこうまえ)
  • @After:メソッド実行後(じっこうご)
  • @AfterReturning正常終了後(せいじょうしゅうりょうご)
  • @AfterThrowing例外発生後(れいがいはっせいご)
  • @Around実行(じっこう) タイミングを自ら制御(みずからせいぎょ)

JSON 処理

  • @JsonProperty:フィールド(めい)指定(してい)
  • @JsonFormat日付形式(ひづけけいしき) のフォーマット。
  • @JsonIgnore:このフィールドを無視(むし)
  • @JsonInclude条件(じょうけん)(もと) づいて(ふく) める(NON_NULL など)。
  • @JsonIgnoreProperties:プロパティの一括無視(いっかつむし)

テスト

  • @SpringBootTest:コンテキスト全体(ぜんたい) をロード。
  • @DataJpaTest:JPA 関連(かんれん) と H2 データベースのみ。
  • @WebMvcTest:Web レイヤーのみ(Controller など)。
  • @MockBean:モックオブジェクトの作成(さくせい)
  • @Commit:テスト完了後(かんりょうご) にコミット(デフォルトはロールバック)。

リトライ

  • @EnableRetry:リトライ機能(きのう)有効化(ゆうこうか)
  • @Retryable:リトライが必要(ひつよう) なメソッド。
  • @Recover最大回数到達後(さいだいかいすうとうたつご) のリカバリメソッド。