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 | 推奨 される方法 |
|---|---|---|---|
| 多対一 | @ManyToOne | EAGER | LAZY に変更 し、Join Fetch を併用 |
| 一対一 | @OneToOne | EAGER | LAZY を検討 |
| 一対多 | @OneToMany | LAZY | LAZY を維持 し、EntityGraph を併用 |
| 多対多 | @ManyToMany | LAZY | LAZY を維持 |
用語集
フレームワーク
依存性注入
@Autowired:型 による自動配線 。@Resource:名前 による自動配線 。@Qualifier:具体的 な Bean ID を指定 。@Value:外部設定 の注入 。
@Resource vs @Autowired
| アノテーション | 出典 | 配線 ルール | 推奨 |
|---|---|---|---|
@Resource | JSR-250(標準 ) | 名前 (Name) を優先 。 | フレームワーク移植時 に使用 。 |
@Autowired | Spring 専用 | 型 (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:最大回数到達後 のリカバリメソッド。