[Seasar-user:22036] Re: データベース接続文字列は別の設定ファイルで管理

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2015年 2月 23日 (月) 21:55:17 JST


小林様

後述の方法で実現しました。
ありがとうございます。
大変助かりました。

以上


> 2015/02/22 18:54、Koichi Kobayashi <koichik @ improvement.jp> のメール:
> 
> 小林 (koichik) です。
> 
> diconにはOGNL式が書けます。
> 
> http://s2container.seasar.org/2.4/ja/ognl.html
> 
> これを利用して、プロパティの値を動的に
> 設定することができます。
> 
> ファイルを読み込むクラスをS2に登録する
> コンポーネントとして実装できるなら、
> 
> <component name="dbConfig" class="xxx.yyy.DbConfig">
>  <property name="filePath">...</property>
>  <initMethod name="load" />
>  ...
> </component>
> 
> <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
>  <property name="URL">dbConfig.getUrl("db1")</property>
>  <property name="user">dbConfig.getUser("db1")</property>
>  <property name="password">dbConfig.getPassword("db1")</property>
>  ...
> 
> この例では、DbConfigクラスのload()メソッドで
> ファイルを読み込むものとします。
> データソースの設定では、DbConfigのインスタンス
> メソッドである getUrl() 等を呼び出して
> プロパティを設定します。
> 
> 
> 別の方法としては、
> 
> <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
>  <property name="URL">@xxx.yyy.DbConfig @ getUrl("db1")</property>
>  <property name="user">@xxx.yyy.DbConfig @ getUser("db1")</property>
>  <property name="password">@xxx.yyy.DbConfig @ getPassword("db1")</property>
>  ...
> 
> この例ではDbConfigクラスの getUrl()等は
> staticメソッドで、最初に呼び出された時点で
> ファイルを読み込む (そしてキャッシュする) か、
> あるいはServletListenerやSevletFilterで
> S2コンテナの初期化より前にファイルを
> 読み込んでおくことになります。
> 
> 
> On Sun, 22 Feb 2015 09:22:31 +0900, "fsd.vdf @ gmail.com" <fsd.vdf @ gmail.com> wrote:
> 
>> お世話になります。
>> sukezi3と申します。
>> 
>> webアプリケーションにて、
>> 複数のデータベースを使用するのですが、
>> そのデータベースへの接続文字列(URL、ユーザID、パスワード)は、
>> diconとは別のファイルで一括管理します。
>> 
>> データベースの切り替えが問題ではなく、
>> データベースの接続文字列はdiconに事前に設定できないことが問題です。
>> 
>> したがって、webアプリケーション起動後、
>> 一旦、別のファイルよりデータベース接続文字列を取得し、
>> その内容をdiconファイルに反映させる動きを考えていますが、
>> 
>> webアプリケーション起動後に
>> どのようにしてdiconから作成された
>> データベースへの接続文字列(URL、ユーザID、パスワード)への
>> プロパティにアクセスするかが分かりません。
>> 
>> ご教授をお願いいたします。
>> 
>> 以上
>> 
>> _______________________________________________
>> Seasar-user mailing list
>> Seasar-user @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-user
> 
> 
> -- 
> {
>  name: "Koichi Kobayashi",
>  mail: "koichik @ improvement.jp",
>  blog: "http://d.hatena.ne.jp/koichik/",
>  twitter: "@koichik"
> }
> 
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user



Seasar-user メーリングリストの案内