Spring Bootでよく使われるアノテーションの種類とその役割
こんにちは。ゆうせいです。
Spring Boot を使っていると、@RestController
や @Autowired
などの アノテーション をよく見かけますよね?
Spring Boot ではアノテーションを使うことで、設定ファイルを書かずに多くの処理を自動化できます。
今回は、Spring Boot でよく使われるアノテーションを カテゴリ別 に整理しながら、その役割を詳しく解説していきます!
1. Spring Boot のアノテーションとは?
アノテーション(@Annotation
)とは、クラスやメソッド、フィールドに メタデータ(付加情報) を与える仕組みです。
Spring Boot では、アノテーションを使うことで 設定を簡略化し、コードの可読性を向上させる ことができます。
例えば、@RestController
を付けるだけで 「このクラスはREST APIを提供する」 という意味を持たせられます。
2. Spring Bootでよく使われるアノテーション一覧
Spring Boot のアノテーションを カテゴリ別 に整理すると、以下のようになります。
カテゴリ | アノテーション例 | 役割 |
---|---|---|
Spring Bootの起動 | @SpringBootApplication | アプリケーションのエントリポイント |
コンポーネント管理 | @Component , @Service , @Repository , @Controller , @RestController | Beanの管理・登録 |
DI(依存性注入) | @Autowired , @Qualifier , @Primary | 依存関係を自動注入 |
設定・プロパティ管理 | @Value , @Configuration , @ConfigurationProperties | 設定値を管理 |
データアクセス(JPA) | @Entity , @Table , @Id , @GeneratedValue , @Column , @Repository | データベース関連 |
トランザクション管理 | @Transactional | トランザクション制御 |
リクエスト処理 | @GetMapping , @PostMapping , @PutMapping , @DeleteMapping , @RequestMapping , @RequestParam , @PathVariable | REST APIのエンドポイント定義 |
バリデーション | @Valid , @NotNull , @Size , @Min , @Max , @Pattern | フォーム入力のバリデーション |
AOP(アスペクト指向プログラミング) | @Aspect , @Before , @After , @Around | 横断的関心事(ログ、認証)を管理 |
非同期処理 | @Async , @EnableAsync | 非同期処理の実装 |
スケジュール実行 | @Scheduled , @EnableScheduling | 定期的な処理の実装 |
それでは、これらのアノテーションを 具体的なコード例 とともに詳しく解説していきます!
3. Spring Bootの起動に関するアノテーション
① @SpringBootApplication
Spring Boot のエントリポイント(起動クラス)につけるアノテーションです。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
この @SpringBootApplication
は、次の3つのアノテーションを含んでいます。
アノテーション | 役割 |
---|---|
@Configuration | 設定クラスとして認識 |
@EnableAutoConfiguration | 自動設定を有効化 |
@ComponentScan | @Component などのBeanをスキャン |
4. コンポーネント管理のアノテーション
Spring Boot では、特定のアノテーションを付けるだけでクラスを Springコンテナの管理下(Bean) に置けます。
アノテーション | 用途 |
---|---|
@Component | 汎用的なBean |
@Service | ビジネスロジックを実装するクラス |
@Repository | データアクセスを担当するクラス |
@Controller | MVCのController層 |
@RestController | REST API用のController |
① @RestController
の使用例
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping
public String getUsers() {
return "ユーザー一覧を返す";
}
}
@RestController
→ REST API を提供するクラス@RequestMapping("/users")
→/users
というパスのリクエストを処理@GetMapping
→GET /users
のリクエストを処理
5. 依存性注入(DI)のアノテーション
① @Autowired
Spring のDI(依存性注入)を実現するアノテーション。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public void getUser() {
userRepository.findUser();
}
}
6. REST APIのアノテーション
Spring Boot では、アノテーションを使ってREST APIのエンドポイントを簡単に作成できます。
アノテーション | HTTPメソッド |
---|---|
@GetMapping | GET(データ取得) |
@PostMapping | POST(データ登録) |
@PutMapping | PUT(データ更新) |
@DeleteMapping | DELETE(データ削除) |
@RequestMapping | 任意のHTTPメソッド |
① @GetMapping
の例
@GetMapping("/hello")
public String hello() {
return "Hello, World!";
}
→ GET /hello
で "Hello, World!"
を返す。
7. データベース関連(JPA)のアノテーション
Spring Data JPAを使うと、データベース操作が簡単になります。
アノテーション | 用途 |
---|---|
@Entity | JPAのエンティティクラス |
@Table(name = "users") | データベースのテーブル名を指定 |
@Id | 主キー(PK)を指定 |
@GeneratedValue | 主キーの自動採番 |
@Column(name = "email") | カラム名を指定 |
① JPAエンティティの例
import jakarta.persistence.*;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
// ゲッター・セッター省略
}
まとめ
Spring Boot のアノテーションは、設定をシンプルにし、開発を効率化します。
基本的なアノテーションを理解し、実際のプロジェクトで活用できるようにしましょう!
次は 「Springのスコープ」や「AOP(アスペクト指向プログラミング)」 について学ぶと、さらに理解が深まりますよ!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
新入社員2025年2月21日【新人エンジニア必見】よくあるGitエラーメッセージと対策方法10選
新入社員2025年2月21日Spring BootのThymeleaf(タイムリーフ)入門 – テンプレートエンジンの基礎を学ぼう!
新入社員2025年2月21日【完全ガイド】良いJavaDocの書き方とベストプラクティス
新入社員2025年2月21日Spring Bootのアノテーションはなぜインタフェースなのか?