Spring MessageSourceでメッセージ取得

今回は、MessageSourceを使ってメッセージを取得する方法について調べてみようと思います。

message.properties作成

  • message.propertiesはapplication.ymlと同じ位置に作成します。
  • メッセージを追加しましょう
  • メッセージコードとメッセージを定義します。

MessageSource DI

  • 使用したいコントローラーでDIします。
  • DIするには@Autowiredを使ったDIとかもあるかと思いますが、自分は@RequiredArgsConstructorを使ってDIしています。
    • @RequiredArgsConstructor:private finalフィールドに対してDIしてくれるアノテーション

メッセージ取得

  • メッセージ取得にはgetMessageメソッドを使います。
  • 3つの引数がありますが、各引数は以下となります。
    • 1番目:message.propertiesのコード
    • 2番目:メッセージが{0}のような形の場合、{0}に入れたい文字列の配列を渡します。
    • 3番目:ルックアップを実行するロケール

終わりに

メッセージを取得時に2番目、3番目の引数にNullを渡すのが重複だったり、可視性が悪いと思うので、MessageHelper?みたいなクラスを作成してコードだけ渡してクラス内で2番目、3番目の引数にnullを設定してくれるロジックを定義して使うのが良いかと思います。

コメントを残す