- - PR -
propertyファイルの内容をメモリーにキャッシュ
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-01-15 02:34
いつもお世話になっています。
只今、サーブレット、JSPを使ってWEBのシステムを開発しております。 このシステムでJavaでのエラー処理の時入力値の属性・サイズなどを propertyファイルに設定しその値を取得して入力値のチェックをしていますが、 その際、毎回propertyファイルを読み込んでいます。 毎回propertyファイルを読み込むのではなpropertyファイルの内容を メモリーにキャッシュしたいのですが、何か良い方法がありましたら ご教授願えないでしょうか。。。。 | ||||
|
投稿日時: 2003-01-15 04:01
TAKAさん、
システムの規模や用途、運用により違ってくると思います。 既にTAKAさんもご存知とは思いますが、幾つかの方法をまとめてみました。 まず、簡単な方法として,ServletContextの setAttribute, getAttributeの使 用があります。文字列以外のオブジェクトも記憶させることができますが、同一 コンテキスト上の他のサーブレットからも参照できてしまうので、1人くらいし か使用しないシステムに限られます。 2番目の方法は、セッションの間、ユーザの振る舞いを追跡するために準備され ている、HttpSessionの setAttribute, getAttribute を使用することです。 セッションを意識する必要があるので、最初の方法よりは手間が掛かります が、同時に複数のセッションに対応できます。 3番目の方法は、JDBCを用いてDBに記憶させる方法です。少し大掛かりで すが、システムを停止させても残しておきたいデータ向きです。 4番目は、EJBにデータを管理させる方法です。 ビジネスロジックを分離する必要がある程の大掛かりなシステム向きです。 エラー処理をしている間だけのデータ保持であれば、2番目の方法で良いかも 知れません。 上記は細かな注意事項を省略していますので、時間に余裕があれば J2EEの Blue Printを読まれるのも良いと思います。 | ||||
|
投稿日時: 2003-01-15 10:01
ん?
エラーチェックに用いるサイズなどの話ですよね? セッションごとに別々の管理する必要はありませんよね? 単純にjava.util.Propertiesとかにセットしておいてこれを使いまわせばよいという 話ではないでしょうか? | ||||
|
投稿日時: 2003-01-15 10:26
ご返答ありがとうございます!
web層ならそうなると思いますが、ロジック層(ただのJavaのclass)で チェック処理をしたいのです(説明不足でした。。。すいません)。 自分なりに考え以下の通りにしてみようかと思います。 下記のコードで問題あるようでしたら、ご意見お願いしますm(_ _)m public class TestCheckProp { private static final erroProp eProp = new erroProp(); public static void checkProp(String inData, String errCod) { //省略 } } public class ErroProp extends Properties { public static final String TEST_COD = "Test0001"; public static final String ERR_PROPERTYFILE = "D:/err.properties"; public ErroProp() { super(); try{ InputStream in = new FileInputStream() load(in); }catch(IOException e){ e.printStackTrace(); } } } [ メッセージ編集済み 編集者: TAKA 編集日時 2003-01-15 11:01 ] | ||||
|
投稿日時: 2003-01-15 11:21
ただ同じ物を使いまわすというのであり、インスタンスがひとつしか必要でないのであれば、シングルトンはいかがでしょうか?
これならば、ErrorPropのインスタンスがひとつだけしか作られませんのでメモリと時間の節約になるはずです。よろしければ参考にしてください。 | ||||
|
投稿日時: 2003-01-15 12:40
ありがとうございます。皆様のご意見大変参考になりました。
| ||||
1
