プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Java、SAStruts、定数の定義(xxx.propertiesの読み込み)
どーでもいーっちゃどーでもいーのですが、
地味に迷うのが定数系をどこで定義するか。

別にインターフェースでまとめて定義してimplementsさせてもいーし
定数クラスをstaticで用意してもいーのですが・・
どーなんでしょーね(--?
便利は便利だけどJava(てかオブジェクト指向)で
定数をすべて1つのクラスにまとめるってのはどーなのよ?ですし
SAStrutsの解説ページにも

特定のエンティティに関連する定数(区分値・属性値)は、それぞれに対応するエンティティに定義しておきます。

とか書いてあるしどーすんべ(--?
うんうん唸りながら考えたのですが、段々面倒臭くなってきたのもあって
環境設定系の定数は「.properties」ファイルにまとめることにしました。
環境設定系とか言ってるのはファイルのパスとかDBの接続情報とか
メールの情報とかそこら辺ね。
ステータス値とかはエンティティに書くとして、
それ以外の定数って今のところ思い浮かばないからいーや。
まぁあったら「.properties」増やそう。
取りあえず今は
sysconf.properties→環境設定系
errors.properties→エラーメッセージ系
だけあれば足りるべ。

っつー訳でお待たせしました。
「xxx.properties」ファイルを作って
それをActionとかから読み込む方法ですφ(--)

・・の前に(--)b

恐らく「/src/main/resources」の下に
「application.properties」とか
「application_ja.properties」とかありますよね?

こいつを読み込みたい時は

import org.seasar.struts.util.MessageResourcesUtil;

して

String aaa = MessageResourcesUtil.getMessage("errors.hoge");

で簡単に読めちゃいます。まぁ便利。
だから面倒だったら全部「application_ja.properties」に書くのも
アリと言えばアリだと思います。
私はカッコつけたいから分けるけど。

さて、改めて「xxx.properties」ファイルを作って
それをActionとかから読み込む方法・・の一例ですφ(--)

1.「xxx.properties」ファイルを作る。
 当たり前ですね。
 私は「sysconf.properties」とか言うのを作りました。
 中身はこんなんφ(--)

 mail.hoge=ほげほげ

2.「xxx.properties」ファイルを読み込む(1)
 私は読み込む処理を部品化しちゃいましたφ(--)
 パッケージは.utilに格納。
 あんま変わらないと言えば変わらないけどカッコつけで。

  package hoge.util;
  
  import org.seasar.framework.util.ResourceUtil;
  
  public class PropertyResourcesUtil {
      private PropertyResourcesUtil() {
      }
  
      /**
       * メッセージを返します。
       *
       * @param fileTag
       *            リソースファイル名(「.properties」より前の部分)
       * @param key
       *            キー
       * @return メッセージ
       */
      public static String getMessage(String fileTag, String key) {
          String resoruceFile = fileTag + ".properties";
          
          return ResourceUtil.getProperties(resoruceFile).getProperty(key);
      }
      
      /**
       * システム設定メッセージを返します。
       *
       * @param key
       *            キー
       * @return メッセージ
       */
      public static String getSysconMessage(String key) {
          return getMessage("sysconf", key);
      }    
  }


 getMessage()の第一引数で読み込むリソースファイル、第二引数でキーを指定します。
 getSysconMessage()はいちいちリソースファイル指定するのめんどかったので用意しました。
 なんか色々やっているように見えなくもないかもしれませんが、実際には

  ResourceUtil.getProperties(リソースファイル名).getProperty(キー値);

 だけです(^^ヾ大事なところは。

3.「xxx.properties」ファイルを読み込む(2)
 あとは「2.」で用意したメソッドを呼び出すだけっす。
 
  String aaa = PropertyResourcesUtil.getSysconMessage("mail.hoge");

分かれば簡単でしょ(--?
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Java  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事