2025-10

Java

【Spring Boot】DTOとEntityを使い分ける設計の考え方

こんにちは、かつコーチです。「EntityをそのままControllerでレスポンスとして返しているけど、これで大丈夫かな」と不安になったことはありませんか。動くには動くのですが、この書き方は運用が進むにつれて確実に問題を起こします。この記...
Java

【Spring】Bean Validationでフォームの入力チェックを実装する【Spring Boot】

こんにちは、かつコーチです。フォームの入力チェックを、Controllerの中でif文を並べて書いていませんか。その方法だと、チェック項目が増えるたびにControllerが肥大化し、同じ検証ロジックを別の画面でも書き直すはめになります。S...
Java

【Spring】N+1問題とJOIN FETCHでの解決

こんにちは、かつコーチです。@OneToMany・@ManyToOneでリレーションを組んだあと、多くの人がハマる落とし穴がN+1問題です。「機能としては正しく動いているのに、なぜか本番でレスポンスが遅い」という相談の多くが、このN+1問題...
Java

【Spring】@Queryでカスタムクエリを書く

こんにちは、かつコーチです。前回、クエリメソッドは条件が複雑になるとメソッド名が長くなりすぎると触れました。そんなときに使うのが@Queryアノテーションです。今回は@Queryを使ったJPQL・ネイティブSQLの書き方を解説します。@Qu...
Java

【Spring】クエリメソッドの命名規則

こんにちは、かつコーチです。findAll()やfindById()は便利ですが、「価格が3000円以上の書籍だけ取得したい」のような条件検索はどうすればよいのでしょうか。Spring Data JPAには、クエリメソッドというメソッド名だ...
Java

【Spring】@OneToMany・@ManyToOneでリレーションを組む

こんにちは、かつコーチです。これまで扱ってきたBookEntityは単独のテーブルでしたが、実際のアプリケーションでは「著者(Author)が複数の書籍(Book)を持つ」のようなテーブル間のリレーションが必ず出てきます。今回は@OneTo...
Java

【Spring】CRUD操作の実装

こんにちは、かつコーチです。EntityとRepositoryの基本を押さえたところで、今回は実際にCRUD(作成・読み取り・更新・削除)をControllerからDBまで一通り繋げて実装してみます。理屈は分かっても、実際に手を動かしてみな...
Java

【Spring】Repositoryインターフェースの基本

こんにちは、かつコーチです。前回はEntityの定義方法を解説しましたが、Entityを作っただけではデータの読み書きはできません。実際にデータベースを操作するにはRepositoryというインターフェースを使います。「インターフェースなの...
Java

【Spring】Spring Data JPAの基本とEntityの定義

こんにちは、かつコーチです。Spring Bootでデータベースを扱うとき、多くの現場で使われているのがSpring Data JPAです。「JDBCと何が違うの?」「Entityって結局なに?」というところで止まってしまう人が多いので、今...
Java

【Spring】コンストラクタインジェクションと@Autowiredの使い分け

こんにちは、かつコーチです。DIの基本的な考え方、Controller・Service・Repositoryの役割、そしてThymeleafでの画面作成まで見てきました。ここまでの記事ではDIの実装方法として@Autowiredをさらっと使...
Java

【Spring】Thymeleafでビューを作成する基本

こんにちは、かつコーチです。前回、@GetMapping・@PostMappingでリクエストを受け取る方法を見てきました。今回は、Controllerが選んだ画面を実際に組み立てるThymeleafの基本を解説します。JSPに代わってSp...
Java

【Spring】@GetMapping・@PostMappingでリクエストを処理する

こんにちは、かつコーチです。前回、@Controllerと@RestControllerの違いを整理しました。今回は、Controllerが実際にどうやって「どのURLへのどんなリクエストか」を判別しているのかを見ていきます。@GetMap...
Java

【Spring】@Controllerと@RestControllerの違い

こんにちは、かつコーチです。前回、Service層・Repository層の役割を整理しました。今回はいよいよ、リクエストを最初に受け取る「入り口」であるControllerです。Spring MVCには@Controllerと@RestC...
Java

【Spring】@Component・@Service・@Repositoryの違い

こんにちは、かつコーチです。前回の記事で、SpringはBeanを管理してDIを実現していると説明しました。Beanを登録するアノテーションには@Componentだけでなく、@Serviceや@Repositoryもあり、初心者の多くが「...
Java

【Spring】DI(依存性注入)の基本的な考え方

こんにちは、かつコーチです。Spring Bootを学び始めると、必ずと言っていいほど「DI」という言葉に出会います。名前が難しそうに聞こえますが、考え方自体はとてもシンプルです。この記事では、Spring Bootの中核をなすDI(依存性...
Java

【Spring】application.propertiesの基本設定

こんにちは、かつコーチです。Spring Bootのプロジェクトを開くと、src/main/resourcesの中にapplication.propertiesという空っぽに近いファイルがあります。「何も書かれていないから重要じゃないのでは...
Java

【Spring】Spring Bootのディレクトリ構成とアノテーションの基礎

こんにちは、かつコーチです。Spring Initializrでプロジェクトを作成すると、いくつものフォルダとファイルが最初から用意されています。何がどこにあるのか分からないまま進めると、後で「このファイルはどこに置けばいいんだろう」と迷子...
Java

【Spring】Spring Initializrでプロジェクトを作成する手順

こんにちは、かつコーチです。前回の記事で、Spring BootがSpring Frameworkの設定の手間を大幅に減らしてくれるフレームワークだと紹介しました。その「手間の少なさ」を最初に実感できるのが、プロジェクトの作成です。この記事...
Java

【Spring】Spring Bootとは?Javaで作るエンタープライズ向けフレームワークを初心者向けに解説

こんにちは、かつコーチです。Java基礎編を読み終えた方の多くが、次に「実務で使われているフレームワークを触ってみたい」と考えるはずです。Java案件の求人を見ると、ほぼ必ずと言っていいほどSpring Bootという単語が出てきます。この...