Micronautで複数の設定ファイルを使う方法!application-*.ymlの書き方を初心者向けに徹底解説
生徒
「Micronautって設定ファイルが一つだけじゃないんですか?環境ごとに設定を変えたいんですけど…」
先生
「Micronautでは複数の設定ファイルを使って、開発環境や本番環境ごとに設定を切り替えることができます。application-*.ymlがその仕組みです。」
生徒
「application.yml以外にもファイルを作っていいんですね。どうやって使い分けるんですか?」
先生
「順番に仕組みと書き方を見ていけば、自然と理解できます。Micronautの設定管理を基礎から学んでいきましょう。」
1. Micronautの設定管理の基本的な考え方
Micronautは、軽量で高速なJavaフレームワークとして知られており、設定管理もとても柔軟に設計されています。基本となるのがapplication.ymlという設定ファイルで、アプリケーション全体の動作をここで制御します。
設定ファイルには、サーバーのポート番号、データベース接続情報、ログ設定など、アプリケーションに必要なさまざまな情報を書きます。Micronautでは、これらの設定をコードに直接書かず、外部ファイルとして管理するのが基本です。
この仕組みにより、コードを変更せずに設定だけを切り替えることができ、開発環境、検証環境、本番環境といった複数環境の運用がしやすくなります。
2. application.ymlの役割と基本構造
application.ymlは、Micronautアプリケーションが最初に読み込む設定ファイルです。YAML形式で記述され、人間にも読みやすいのが特徴です。
例えば、サーバーのポート番号を指定する場合、次のように書きます。Micronautの設定管理では、このようなシンプルな記述で多くの設定が可能です。
micronaut:
server:
port: 8080
この設定だけで、Micronautアプリケーションは8080番ポートで起動します。初心者のうちは、まずapplication.ymlが基準となる設定ファイルだと覚えておくと理解しやすいです。
3. application-*.ymlで環境ごとに設定を分ける理由
実際の開発では、すべての環境で同じ設定を使うことはほとんどありません。例えば、開発環境ではローカル用のデータベース、本番環境では本番用のデータベースを使いたいケースが多いです。
Micronautでは、この問題を解決するためにapplication-環境名.ymlという仕組みが用意されています。これにより、共通設定はapplication.ymlに書き、環境ごとの差分だけを別ファイルに切り出せます。
設定管理を分離することで、ミスを減らし、安全にアプリケーションを運用できるようになります。特に初心者ほど、この考え方を早めに身につけることが大切です。
4. application-dev.ymlの書き方と具体例
開発環境用の設定ファイルとして、application-dev.ymlを作成するのが一般的です。このファイルには、開発時だけ使いたい設定を書きます。
例えば、開発用のサーバーポートを変更したり、ログを詳細に出力したりする設定がよく使われます。
micronaut:
server:
port: 8081
logger:
levels:
root: DEBUG
このように書くことで、開発環境では8081番ポートで起動し、ログも詳しく表示されます。本番環境に影響を与えない点が大きなメリットです。
5. application-prod.ymlで本番環境の設定を管理する
本番環境用にはapplication-prod.ymlを用意します。本番では安定性や安全性が重要になるため、設定内容も慎重に管理します。
例えば、ログレベルを抑えたり、ポート番号を標準的な値に設定したりします。
micronaut:
server:
port: 80
logger:
levels:
root: INFO
このように環境ごとに設定を分けることで、同じコードでも安全に動作させることができます。Micronautの設定管理が実務で評価される理由の一つです。
6. 環境を切り替えて起動する方法
複数の設定ファイルを作成しても、どの環境を使うか指定しなければ意味がありません。Micronautでは、環境名を指定して起動することで、対応するapplication-*.ymlが自動的に読み込まれます。
例えば、開発環境で起動する場合は、次のように環境名を指定します。
java -Dmicronaut.environments=dev -jar app.jar
この指定により、application.ymlとapplication-dev.ymlが読み込まれ、開発環境用の設定が適用されます。初心者でも扱いやすい仕組みです。
7. 設定値をJavaコードから取得する流れ
設定ファイルに書いた値は、Micronautの機能を使ってJavaコードから簡単に取得できます。これにより、設定と処理をきれいに分離できます。
例えば、設定ファイルの値をクラスに読み込む基本的な例を見てみましょう。
import io.micronaut.context.annotation.Value;
import jakarta.inject.Singleton;
@Singleton
public class SampleConfig {
@Value("${micronaut.server.port}")
int port;
public int getPort() {
return port;
}
}
このように設定管理とコードを分けることで、Micronautらしい保守しやすい設計になります。
8. 複数設定ファイル運用でよくある注意点
Micronautで複数の設定ファイルを使う場合、設定の上書きルールを理解しておくことが重要です。基本的には、application.ymlが土台となり、application-環境名.ymlがその上に重ねて適用されます。
同じキーが複数ファイルにある場合、環境別の設定が優先されます。この仕組みを理解していないと、意図しない設定が適用されることがあります。
初心者のうちは、設定ファイルをシンプルに保ち、環境ごとの差分だけを書くようにすると混乱しにくくなります。これがMicronautの設定管理をうまく使いこなすコツです。