[Seasar-user:21356] Re: s2configでの環境による設定切り替えについて
Kaiho Hiroshi
[E-MAIL ADDRESS DELETED]
2012年 6月 22日 (金) 17:53:35 JST
了解しました。
よろしくお願いいたします。
海保
> -----Original Message-----
> From: seasar-user-bounces @ ml.seasar.org
> [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of Ryo Iwama
> Sent: Friday, June 22, 2012 1:04 AM
> To: seasar-user @ ml.seasar.org
> Subject: [Seasar-user:21355] Re: s2configでの環境による設定切り替えについて
>
> 海保様
>
> happy_ryoです。
> 本件ですが、立て込んでおり平日にまとまった時間がとれないため
> 週末から来週頭にかけてでお返事できればと思っています。
> 対応が遅くなってしまい申し訳ございませんがよろしくお願い致します。
>
>
> 2012年6月12日 19:02 Kaiho Hiroshi <Kaiho.Hiroshi @ exc.epson.co.jp>:
> > 海保と申します。
> > 初めて投稿させていただきます。
> > よろしくお願いいたします。
> >
> > http://ml.seasar.org/archives/seasar-user/2011-June/020807.html
> > http://ml.seasar.org/archives/seasar-user/2011-June/020828.html
> > http://ml.seasar.org/archives/seasar-user/2011-July/020844.html
> >
> > 上記のメーリングリストを参考に、env設定による環境切り替えを行おうとしており、
> > その際に、期待した結果にならなかったので、内容のご確認と対応をご教示いただけれ
> ばと思います。
> >
> > 下記のようなpropertiesファイルの設定をすると、
> > hoge1とhoge2の項目はhoge_st.propertiesの値で上書き(fuga1, fuga2)され、
> > hoge3はhoge.propertiesで設定した項目がそのまま利用(hoge3)され、
> >
> > 結果出力は、
> > 「fuga1,fuga2,hoge3」
> > を期待していたのですが、
> >
> > 実際には、
> > 「fuga1,fuga2,デフォルト3」
> > となります。
> >
> > --hoge.properties--
> > env=st
> > hoge1=hoge1
> > hoge2=hoge2
> > hoge3=hoge3
> >
> > --hoge_st.properties--
> > hoge1=fuga1
> > hoge2=fuga2
> >
> >
> > s2configのユーザガイドを読んだなかでは、
> > 「hoge_st.propertiesで定義されていない項目は上書きされない」
> > つまり、
> > 「hoge_st.proertiesに項目が無く、hoge.propertiesに項目があればその値、無ければ
> デフォルト値」
> > となるのが自然だと思うのですが、いかがでしょうか?
> >
> > ConfigContainerImpl#finadAllConfigValue()の中の
> ConfigContainerTraversal#forEachParent()を見ると、
> > 子コンテナ(hoge_st.propertiesの値を保持している)から順にpropertiesファイルの値
> を見ており、
> > この際に子コンテナに存在しないキーの場合はデフォルト値を返すようになっているようで
> す。
> >
> > よろしくお願いいたします。
> >
> >
> > 【環境】
> > s2-frameworkのバージョン 2.4.42
> > s2-extensionのバージョン 2.4.42
> > s2config-coreのバージョン 1.0.3
> >
> > 【設定ファイル】
> > --configCustomize.dicon--
> >
> > <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC
> > "-//SEASAR//DTD S2Container 2.4//EN"
> > "http://www.seasar.org/dtd/components24.dtd">
> > <components>
> > <!-- コンフィグの読み書きの実装を指定します -->
> > <component
> > class="org.seasar.config.core.config.impl.ConfigPropertiesWriter"
> > instance="prototype"/>
> > <component
> > class="org.seasar.config.core.config.impl.ConfigPropertiesReader"
> > instance="prototype"/>
> > </components>
> >
> > --config.dicon―
> >
> > <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC
> > "-//SEASAR//DTD S2Container 2.4//EN"
> > "http://www.seasar.org/dtd/components24.dtd">
> > <components>
> > <include path="s2config-core.dicon"/>
> > <component
> > name="configContainer"
> > class="org.seasar.config.core.container.impl.StrictConfigContainer">
> > <arg><component
> > class="org.seasar.config.core.container.impl.ConfigContainerImpl"
> > autoBinding="none"/></arg>
> > <property name="configName">"hoge"</property>
> > </component>
> > </components>
> >
> > --hoge.dicon―
> >
> > <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC
> > "-//SEASAR//DTD S2Container 2.4//EN"
> > "http://www.seasar.org/dtd/components24.dtd">
> > <components>
> > <include path="config.dicon"/>
> > <component class="jp.sample.Hoge">
> >
> > <arg>configContainer.findAllConfigValue(@java.lang.String @ class,
> > "hoge1, "デフォルト1")</arg>
> > <arg>configContainer.findAllConfigValue(@java.lang.String @ class,
> > "hoge2,
> > "デフォルト2")</arg>
> >
> > <arg>configContainer.findAllConfigValue(@java.lang.String @ class,
> > "hoge3, "デフォルト3")</arg>
> > </component>
> > </components>
> >
> > --Hogeクラス―
> >
> > public class Hoge {
> >
> > /**
> > * コンストラクタ
> > */
> > public Hoge(String h1, String h2, String h3) {
> > System.out.println(h1 + “,” + h2 + “,” + h3);
> > }
> > }
> >
> >
> >
> > _______________________________________________
> > Seasar-user mailing list
> > Seasar-user @ ml.seasar.org
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
>
>
>
> --
> //////////////////////////////////////////////////////////////////////////////////////////////////////////
>
> 岩間 亮 <Ryo Iwama>
> (id:happy_ryo)
>
> blog:http://d.hatena.ne.jp/happy_ryo/
>
> 参加プロジェクト
>
> NetBeans日本語コミュニティ:http://wiki.netbeans.org/JaNetBeans
> S2Config(設定情報管理):http://s2config.sandbox.seasar.org/
> Fisshplate(Excelテンプレート):http://fisshplate.sandbox.seasar.org/
>
> しごと
>
> CHOT
> http://chot.to
>
> ピーチク
> http://ptic.jp
> //////////////////////////////////////////////////////////////////////////////////////////////////////////
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内