【Spring Boot】プロファイル(@Profile)の基本をやさしく解説

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Spring Boot を使っていると、
「開発環境と本番環境で設定を変えたい」
という場面に必ず出会います。

  • DB の接続先を変えたい
  • ログレベルを変えたい
  • モックと本物のサービスを切り替えたい
  • 特定の Bean を環境ごとに使い分けたい

こういった“環境ごとの切り替え”を簡単に実現してくれるのが
プロファイル(@Profile) です。

この記事では、プロファイルの基本を
やさしく・実務寄り で整理していきます。


プロファイル(@Profile)とは

一言でいうと、

「環境ごとに使う Bean や設定を切り替える仕組み」

です。

  • dev(開発)
  • test(テスト)
  • prod(本番)

といった環境ごとに、
使う Bean や設定を変えられます。


まずは基本のコードを確認

dev 環境だけで使いたい Bean

Java
@Profile("dev")
@Component
public class DevMailService implements MailService {
    ...
}

prod 環境だけで使いたい Bean

Java
@Profile("prod")
@Component
public class ProdMailService implements MailService {
    ...
}

同じインターフェースを実装していても、
プロファイルによって使われる Bean が変わります。


プロファイルを有効にする方法

application.yml

YAML
spring:
  profiles:
    active: dev

これで dev プロファイルが有効になります。


プロファイルごとに設定ファイルを分ける

Spring Boot では、 application-{profile}.yml という名前で設定を分けられます。

application-dev.yml

YAML
logging:
  level:
    root: DEBUG

application-prod.yml

YAML
logging:
  level:
    root: INFO

環境ごとに設定を切り替えられるため、
本番でログが大量に出る事故を防げます。


よくある使い方(実務編)

DB の接続先を切り替える

  • dev → ローカル DB
  • prod → 本番 DB

メール送信のモックを切り替える

  • dev → ログに出すだけ
  • prod → 実際にメール送信

外部 API のモックを切り替える

  • dev → ダミーのレスポンス
  • prod → 本物の API

ログレベルを切り替える

  • dev → DEBUG
  • prod → INFO

@Profile の動き方をふわっと理解する

1. Spring Boot が起動

2. active プロファイルを確認

3. @Profile が付いた Bean をフィルタリング

4. 該当する Bean だけが登録される

つまり、
プロファイルに合わない Bean は最初から存在しない
ということです。

実務でよくあるつまずき

1. プロファイルが有効になっていない

→ application.yml の設定漏れ。

2. Bean が見つからない

→ @Profile の指定が間違っている。

3. 複数プロファイルを有効にしたい

YAML
spring:
  profiles:
    active: dev,local

4. @Profile のスペルミス

意外と多いです。


@Profile をもっと活かすポイント

1. @Configuration と組み合わせる

設定クラスごと切り替えられます。

2. @ConditionalOnProperty と併用する

細かい条件で Bean を切り替えられます。

3. テストでは @ActiveProfiles を使う

Java
@ActiveProfiles("test")

まとめ

プロファイル(@Profile)は、

「環境ごとに Bean や設定を切り替える仕組み」

です。

  • dev / test / prod など環境ごとに切り替え
  • Bean に @Profile を付けるだけ
  • application-{profile}.yml で設定を分離
  • DB・ログ・外部 API の切り替えに便利
  • 実務で必ず使う機能

難しく聞こえますが、
「環境ごとに使う Bean を変えるための仕組み」
と理解できれば十分です。


decopon
decopon

プロファイルを理解すると、
開発・テスト・本番の切り替えがとてもスムーズになります。
設定の事故も減り、安心してデプロイできるようになります。
あなたの開発が、今日より少しだけ楽になりますように。

moco
moco

環境ごとに“使うものを変える”って、なんだかおしゃれだね…

コメント

タイトルとURLをコピーしました