• Java
  • Spring
  • エラー解決
  • 現場メモ
  • クイズ
  • 成長ガイド

学習と現場をつなぐ

ポンコツPdMの開発メモ

お問い合わせはこちら
  • Java
  • Spring
  • エラー解決
  • 現場メモ
  • クイズ
  • 成長ガイド
  • Java
    Javaに関するテーマ
  • Spring
    特にSpringについてはこちら
  • 開発現場メモ
    開発に関するノウハウやメモ
Spring BootのMockMvcで403と400になる原因を解説する記事のアイキャッチ。Java道場風の空間で若手エンジニアがCSRFとPOSTテストを調査するイラスト。

設計・テスト・レビュー

2026/11/4

Spring BootのMockMvcでPOSTが403・400になる原因|CSRF・Form・JSONの確認順

AIによる要約MockMvcのPOSTが403なら、まずCSRFと権限を切り分けます。.with(csrf())を足しても、必要な認証ユーザーや権限がなければ成功しません。400は入力変換やValidationを調べますが、FormのエラーをBindingResultで受ける画面では200で戻る場合があります。Securityを有効にした実行例で、403・401・400・200と登録成功を区別します。 MockMvcはHTTPサーバーを起動せず、DispatcherServletやSpring MVCの仕 ...

Spring Data JPAのN+1問題を解説する記事のアイキャッチ。Java道場風の空間で若手エンジニアが大量SQLとJOINを調査するイラスト。

実装・エラー解決

2026/11/5

Spring Data JPAでSQLが大量に発行される原因|N+1問題の確認方法と対策

AIによる要約N+1問題は、一覧を取得する1本のSQLに加え、各行の関連Entityを読むたびに追加SQLが発行される状態です。件数が少ない開発環境では気づきにくく、本番データで急に遅くなります。SQLログで「似たSELECTがIDを変えて繰り返されていないか」を確認し、その画面で必要な関連だけをJOIN FETCH、@EntityGraph、DTO projectionなどでまとめて取得します。すべてをEAGERへ変える対策は避けます。 Spring Data JPAでは、Entity同士の関連をJav ...

SpringのComponent、Service、Repositoryの違いを解説する記事のアイキャッチ。Java道場風の空間で若手エンジニアがBeanの役割分担を学ぶイラスト。

実装・エラー解決

2026/11/4

Springの@Component・@Service・@Repositoryの違い|どれを付けるべき?

AIによる要約@Serviceと@Repositoryは、どちらも@Componentを土台にしたステレオタイプで、コンポーネントスキャンによりBean登録されます。違いは主に役割の表現です。業務処理はService、DBなどの永続化アクセスはRepository、どちらにも当てはまらない共通部品はComponentを基本にします。Repositoryにはデータアクセス例外変換の対象になる意味もあるため、全部をComponentへ統一しない方が設計意図を伝えられます。 Springのクラスへ@Compon ...

Spring BootのControllerとRestControllerの違いを解説する記事のアイキャッチ。Java道場風の空間で若手エンジニアがHTML画面とJSON APIを学ぶイラスト。

実装・エラー解決

2026/11/4

Spring Bootの@Controllerと@RestControllerの違い|画面とJSONで使い分ける

AIによる要約@Controllerは主にThymeleafなどの画面名を返し、@RestControllerは戻り値をレスポンス本文へ書き込みます。RestControllerはControllerとResponseBodyを組み合わせたアノテーションです。HTML画面とJSON APIをクラス単位で分け、HTTPステータスやヘッダーも返したいAPIではResponseEntityを使うと、戻り値の意図が分かりやすくなります。 Spring BootのWeb開発では、@Controllerと@RestC ...

Spring Data JPAでEntityが更新されない原因を解説する記事のアイキャッチ。Java道場風の空間で若手エンジニアがトランザクションとUPDATEを学ぶイラスト。

実装・エラー解決

2026/11/5

Spring Data JPAでEntityを変更しても更新されない原因|@Transactionalとダーティチェック

AIによる要約書き込みトランザクションで管理対象Entityを変更すると、フラッシュで変更がDBへ送られ、コミットで確定します。更新されない場合は、Serviceに有効な@Transactionalがあるか、変更したEntityが管理対象か、readOnlyになっていないか、例外でロールバックしていないかを確認します。saveを追加して隠す前に、取得から変更、コミットまでが同じトランザクションかを追うことが重要です。 Spring Data JPAを使い始めると、Repositoryで取得したEntity ...

Spring BootでValidationメッセージが表示されない原因を解説する記事のアイキャッチ。Java道場風の空間で若手エンジニアがth:errorsを確認するイラスト。

実装・エラー解決

2026/11/5

Spring Bootでバリデーションメッセージが表示されない|BindingResultとThymeleafの切り分け

Spring BootとThymeleafの登録画面で名前を空欄にして送信したところ、同じ画面には戻るのに「名前を入力してください。」が表示されない。最初に見るのは、ControllerのBindingResultにnameのエラーがあるかです。エラーが1件あるなら、同じ制約を付け直しても、表示側が別の項目を読んでいる問題は直りません。 この記事では、架空のユーザー登録画面に、名前のエラーがあるのにメールのエラーを表示しようとする誤りを入れます。同じPOSTを故障版と修正版へ送り、Controllerの判 ...

Spring Bootの400 Bad Requestを切り分ける記事のアイキャッチ。Java道場風の空間で若手エンジニアがControllerとJSONのエラーを調査するイラスト。

実装・エラー解決

2026/11/4

Spring Bootで400 Bad Requestになる原因|Controllerに値が入らない時の確認順

AIによる要約Spring Bootの400 Bad Requestは、必須パラメータ不足・型変換・JSON読み取り・入力検証のどこで失敗したかを、例外名と送信値から切り分けます。Controllerのブレークポイントに止まらない場合も、Networkで実際の要求を見て、同じ要求のログと照合してください。/orders/abcを送ったときの例外から、修正後の確認まで具体的に追います。 400 Bad Requestは「サーバーへ到達していない」という意味ではありません。Spring MVCまでは届いたもの ...

JavaのBigDecimalで0.0と0.00を比較する方法を解説する記事のアイキャッチ。Java道場風の空間で若手エンジニアがequalsとcompareToの違いを学ぶイラスト。

実装・エラー解決

2026/11/5

BigDecimalのequalsがfalseになる原因|compareToとSet・Mapの使い分け

請求データの「1,200.0」と入金データの「1,200.00」は、数字としては同じ金額です。それでもBigDecimal.equalsで照合するとfalseになります。compareToに変えればその照合は通りますが、HashMapに登録した入金を別の桁数で探す処理は、その一行を直しただけでは通りません。 この記事でわかること値とscaleの両方を比べるequalsと、数値を比べるcompareToの違い。同じ入力でHashSet、HashMap、TreeSetの結果が分かれる理由。小数2桁に固定できる ...

Spring BootのServiceをJUnitとMockitoでテストする方法を解説する記事のアイキャッチ。Java道場風の空間で若手エンジニアがRepositoryのモックを学ぶイラスト。

設計・テスト・レビュー

2026/11/4

Spring BootのServiceをJUnit・Mockitoでテストする方法|Repositoryをモックする基本

AIによる要約Serviceの単体テストではSpring Boot全体を起動せず、JUnit 5とMockitoでRepositoryをモックします。@Mockで依存先を作り、@InjectMocksまたはコンストラクタでServiceへ渡し、戻り値だけでなく保存処理が正しい引数で呼ばれたかも確認します。成功ケース、対象なし、業務ルール違反を分けてテストし、DB制約やトランザクションは結合テストへ任せます。 Spring BootのServiceは、Repositoryからデータを取得し、条件を判定し、更 ...

Spring Bootで@RequestParamのバリデーションが効かない原因を解説する記事のアイキャッチ。Java道場風の空間で若手エンジニアがValidationとSpring MVCを学ぶイラスト。

実装・エラー解決

2026/11/5

Spring Bootで@RequestParamのバリデーションが効かない原因|@Validatedは必要?

AIによる要約@RequestParamへ@NotBlankや@Minを付けても効かないときは、Validation依存関係、Springのバージョン、例外の受け取り方を確認します。Spring Framework 6.1以降のSpring MVCにはControllerメソッドの検証機能があり、旧来のAOP方式で使うクラスレベルの@Validatedを外す方が適切な構成もあります。@Validだけでは制約にならず、BindingResultも単純なRequestParam検証の受け皿ではありません。 S ...

« Prev 1 … 8 9 10 11 12 … 19 Next »
プロフィール画像

ポンコツPdM

SIerでの開発・プロジェクト運営の経験をもとに、Java・Springの実装、設計・テスト、チーム開発で役立つ手順をまとめています。

    START HERE初めての方へ

    Java・Springの実装、テスト、レビューで迷ったときに。今の課題から記事を探し、次に学ぶことを整理できます。

    成長ロードマップを見る →
    FIND YOUR TOPICよくある困りごと
    • エラー・実装で詰まったとき →
    • 設計・テスト・レビューを学ぶ →
    • 仕事・チーム開発で迷ったら →
    広告
    NEXT BOOKSHELF学習段階ごとの本棚

    いま伸ばしたい力に合わせて、次の1冊を選べます。

    • 01 / 初心者Java・Git・SQLの土台 →
    • 02 / 脱初心者Web機能をひとりで作る →
    • 03 / 実務担当設計・テスト・レビュー →
    • 04 / リーダー候補要件整理・チーム判断 →

    ※当サイトはAmazonアソシエイト・プログラムの参加者です。リンク先で価格・在庫をご確認ください。

    人気記事

    • Springで「NoUniqueBeanDefinitionException」が出たときの対策 - 49,728 ビュー
    • 業務用のシステムにおいてクラス設計(分割)をどのように考えるか-1 - 47,167 ビュー
    • Spring Data Jpaと@Entityを使って複数テーブルで共通の値を親クラスにまとめて... - 43,452 ビュー
    • 免責事項
    • 著作権について
    • 学習ガイド
    • プライバシーポリシー
    • リンクについて

    学習と現場をつなぐ

    ポンコツPdMの開発メモ

    © 2026 ポンコツPdMの開発メモ