1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【springboot アノテーション一覧とimport文】

1
Last updated at Posted at 2025-06-10

現時点で調べたり使ったりしてるアノテーションの備忘録です!
すぐ忘れちゃうので(笑)

@RestControllerと@Controller

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, World!";
    }
}

実行結果

"Hello, World!"

@RestControllerは、SpringフレームワークでREST APIを作成するためのアノテーション。これを使うと、ブラウザやクライアントアプリケーションにデータを返すエンドポイントを簡単に作成できます
※エンドポイントはソフトウェアが外部に公開している機能や、APIなどの所在を示す識別名、ネットワーク上でのアドレス、またはURL/URIなどを指す。フロント側からアクセスする場所
@Controllerは通常のWebページ(HTML)を返すために使うが、@RestControllerはJSONやXMLのようなデータを返すために使う。

@GetMapping

import org.springframework.web.bind.annotation.GetMapping;

@GetMapping("/home")
public String showHomePage() {
    return "お家";
}

リクエストに対して、どんな応答を返すかを決めるのが@GetMapping。
「http://localhost:8080/home」
のリクエストが来たら、「お家」と返すようにと書いてある。登録されているデータを取得する役割を果たす。

@RequestMapping

import org.springframework.web.bind.annotation.RequestMapping;

このクラスに書かれてるすべてのAPIはここに書かれてるURLでアクセスするという意味
例)@RequestMapping("training/test")と書いたらローカルホストの後ろに/training/testを付けたら表示されるようになる。

@PostMappin

新しいデータを登録する役割を果たす。(INSERT処理)

@DeleteMapping

登録されている値を削除する役割を果たす。(DELETE処理)
例)Qiitaからユーザーを削除する/Qiitaへの投稿を削除するetc...

@PutMapping

既存データの上書きをする役割を果たす。(UPDATE処理)
例)Qiitaの記事を修正する/Qiitaのユーザーデータを修正するetc...

@Autowired

import org.springframework.beans.factory.annotation.Autowired;

@Autowired
private ThreadsRepositry threadsRepositry;

springフレームワークの依存性注入機能を利用するためのアノテーション。今回なら、ThreadsRepositry.javaのファイルに書いてある処理を呼び出せる。フ2個目のァイル名 クラス名なので2個のスレッドレポジトリのtは小文字。
※依存性注入は簡単に言うと使いたいクラスを勝手に持ってきてくれる感じ。使い方は3種類ある。
・セッターインジェクション(使い道なし)
・フィールドインジェクション(非推奨)
・コンストラクタインジェクション(推奨)

private final static Logger logger = LoggerFactory.getLogger(MainController.class);

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private final static Logger logger = LoggerFactory.getLogger(MainController.class);

Javaでアプリケーションのロギング(ログ出力)を行うために、Loggerオブジェクトを作成するコード。最後のメインコントロールはクラス名に変える。インポートの分も一緒に書く。
デバックの作業がこれらしい。

@Entity

import jakarta.persistence.Entity;

Entityクラスをつくるという意味。データベースのテーブルやデータをプログラム内で表現するためのクラス。とりあえずデータベースのテーブルを使いたいときに書く。javabeansみたいなやつ。

@Table

import jakarta.persistence.Table;

データベースのテーブル名や設定を管理するためのアノテーション

@Id

import jakarta.persistence.Id;

主キーの設定

@Column

カラム名を指定

@Repository

import org.springframework.data.jpa.repository.JpaRepository;

Spring MVCでデータ層のクラス(DAO等のDBアクセスを行うクラス)に付与する

@Controller

Spring MVCでコントローラー層のクラスに付与する。主な役割は画面遷移の制御、ドメイン層の Service の呼出 (主処理を実行する)。

@Service

mport org.springframework.stereotype.Service;

Sping MVCでサービス層のクラス(ビジネスロジック等)に付与する。
Service は業務処理を提供する。

@Data

import lombok.Data;

getterとsetterを省略できる

@ManyToOne

import jakarta.persistence.ManyToOne;

多くのエンティティが1つのエンティティに関連

@OneToMany

import jakarta.persistence.OneToMany;

1つのエンティティが複数のエンティティに関連

@ManyToMany

多くのエンティティが多くのエンティティに関連

@JoinColumn

@JoinColumn(name="room_id")
private Room room;
外部キーとして、room_idを使用する。

@Query

import org.springframework.data.jpa.repository.Query;

特定の条件でフィルタリングしたデータを取得したい場合や、結合テーブルから特定のカラムを選択したい場合に便利な奴。複雑なデータ操作が可能。リポジトリクラスで使う。@Query(value =SQL文)って感じでvalue=って書くとSQL分を直書きできる。

@Param

import org.springframework.data.repository.query.Param;

@RequestParam

ブラウザからのリクエストの値(パラメータ)を取得することができるアノテーション。

@RequestBody

リクエストのボディを指定したオブジェクトにマッピングしてくれる。POSTリクエストでJSONデータを受け取る場合。

@PathVariable

URLの一部をメソッドの引数として受け取るために使用する、@PathVariable を使う。

@GetMapping("/{id}")
public String getProduct(@PathVariable int id) {
    return "商品ID: " + id;
}
動作例
GET /products/1 → "商品ID: 1"
GET /products/10 → "商品ID: 10"

@PathVariable

URLのパス部分をパラメーターとして取得してくれる

import org.springframework.web.bind.annotation.PathVariable;

@DeleteMapping("/comments/{id}")//commentのidを指定して消せるようにしたい
    public String deleteComments(@PathVariable Integer id){
        commentsService.delete(id);
        return "deleted successfully!";
        ```
GETリクエストとDELETEリクエストでは使えるけど、PUTリクエストとPOSTリクエストには使えなくはないけど一般的じゃない。詳細は別途記入。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?