[Seasar-user:20805] s2configで環境による設定の切り替えがうまくできない

Yasuo Tabira [E-MAIL ADDRESS DELETED]
2011年 6月 17日 (金) 18:58:34 JST


田平と申します。

S2Configを使用して環境によって設定を切り替えようとしていますが、うまく行きません。
Seasar2徹底入門の通りやっているつもりなのですが、切り替え用の設定ファイルの値が反映されないです。

設定ファイルを以下のように作成し、env=utを記述しています。
これでhoge_ut.propertiesの値(99999)が参照されるのを期待しているのですが27720が返ってきます。

== hoge.properties
env=ut
barService.areacd.foo=27720

== hoge_ut.properties
barService.areacd.foo=99999

どなたか原因がわかる方がいらっしゃいましたらご教授願えませんでしょうか。
よろしくお願いいたします。

■環境
s2-frameworkのバージョンは2.4.43です。
s2-extensionのバージョンは2.4.43です。
s2-tigerのバージョンは2.4.43です。
s2config-coreのバージョンは1.0.3です。
s2config-extensionのバージョンは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>



== creator.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="convention.dicon"/>
   <include path="customizer.dicon"/>
   <component class="org.seasar.framework.container.creator.ActionCreator"/>
   <component class="org.seasar.struts.creator.FormCreator"/>
   <component class="org.seasar.framework.container.creator.ServiceCreator"/>
   <component class="org.seasar.framework.container.creator.DtoCreator"/>
   <component
class="org.seasar.framework.container.creator.InterceptorCreator"/>
   <component class="org.seasar.framework.container.creator.DaoCreator"/>
   <component class="org.seasar.config.core.creator.ConfigCreator"/>
   <component class="org.seasar.s2csv.creator.CsvCreator"/>
   <component class="org.seasar.chronos.core.creator.TaskCreator"/>
   <component class="org.seasar.chronos.core.creator.TriggerCreator"/>
   <component name="logicCreator"
class="org.seasar.framework.container.creator.LogicCreator"/>
   <component class="org.seasar.config.core.creator.ConfigCreator"/>
</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>
       <initMethod name="loadToBeans"/>
   </component>
</components>


== コンフィグクラス

public class HogeConfig {

   @Resource
   private ConfigContainer configContainer;

   /**
    * fooの値。
    *
    * @return fooの値
    */
   public String getBarServiceAreacdFoo() {
       String val = configContainer.getConfigValue(String.class,
"barService.areacd.foo");
       if (val == null) {
           throw new InvalidPropertyRuntimeException(
               "設定ファイル hoge.properties : barService.areacd.foo の読み込みに失
敗");

       }
       return val;
   }
}


--
田平康雄
[E-MAIL ADDRESS DELETED]


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