- - PR -
Digesterによる設定ファイルの読み込みについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-09-05 13:56
こんにちは。
今、下記のような設定ファイルをCommonsコンポーネントのDigesterを利用して、 読み込みたいと思っています。 <data-source>要素に対応するクラスとしてDataSourceConfigクラスを、 <smtp>要素に対応するクラスとしてSmtpConfigクラスを作成しました。 これらのクラスのインスタンスへの参照を 設定ファイルを読み込む(下記のプログラムのload()メソッドを含む)Configクラスで 保持しています。 疑問に思っていることは、プログラム中の(*1)と(*2)の行で、 ConfigオブジェクトのsetDataSourceConfigメソッド、setSmtpConfigメソッドが 呼ばれるようにルールを設定するにはどうしたら良いかということです。 このままで問題ないのでしょうか。 オブジェクトスタックについての理解に自信がありません。 よろしくお願いします。 ------------------------------------------------------------------ 「設定情報ファイル(途中略)」 <?xml version="1.0" ?> <config> <data-source> ・・・ここでデータベース接続に必要な情報を設定・・・ </data-source> <smtp> ・・・ここでメール送信のために必要な情報を設定・・・ </smtp> </config> ------------------------------------------------------------------ 「設定情報ファイルを読むためのメソッドを含むクラス」 public class Config { private DataSourceConfig dataSourceConfig; private SmtpConfig smtpConfig; public void setDataSourceConfig(DataSourceConfig dataSourceConfig) { this.dataSourceConfig = dataSourceConfig; } public void setSmtpConfig(SmtpConfig smtpConfig) { this.smtpConfig = smtpConfig; } ・・・・・・ public void load(File configFile) throws Exception { Digester digester = new Digester(); digester.push(this); // data-source要素に対してのプロセッシングルールの定義。 // DataSourceConfigクラスはdata-source要素に対応する。 digester.addObjectCreate("config/data-source", "DataSourceConfig"); (*1)digester.addSetNext("config/data-source", "setDataSourceConfig", "DataSourceConfig"); ・・・・・・ Digester#addCallMethod, Digester#addCallParamメソッドなどを 利用して、DataSourceConfigオブジェクトの属性値を設定するルールを定義する。 ・・・・・・ // ここでは、smtp要素に対してのプロセッシングルールを定義する。 // SmtpConfigクラスはsmtp要素に対応する。 digester.addObjectCreate("config/smtp", "SmtpConfig"); (*2)digester.addSetNext("config/smtp", "setSmtpConfig", "SmtpConfig"); ・・・・・・ Digester#addCallMethod, Digester#addCallParamメソッドなどを 利用して、DataSourceConfigオブジェクトの属性値を設定するルールを定義する。 ・・・・・・ digester.parse(configFile); } ・・・・・・ |
1