春の豆の定義に奇妙な問題があります。私のアプリケーションはマルチモジュールのものです。現在、core-libという名前のプロジェクトがあります。このプロジェクトには、次のようにPropertyPlaceholderConfigurerを定義するspring.xmlファイルがあります。
<bean id="corePropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="10" />
<property name="locations">
<list>
<!-- default properties files containing ALL possible properties -->
<value>classpath:default.connection.properties</value>
<value>classpath:default.mq.properties</value>
<!-- installation specific, optional properties file containing overridden properties -->
<value>classpath:connection.properties</value>
<value>classpath:mq.properties</value>
</list>
</property>
<property name="ignoreResourceNotFound" value="true" />
</bean>
次に、core-libプロジェクトからのものを含む独自のspring.xmlファイルを持つ依存プロジェクトがあります。さらに、次のように2番目のPropertyPlaceholderConfigurerを定義します。
<!-- import configuration from service layer -->
<import resource="classpath:spring.xml"/>
<bean id="commPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="order" value="20" />
<property name="locations">
<list>
<!-- properties files containing ALL possible properties -->
<value>classpath:processing.properties</value>
</list>
</property>
<property name="ignoreResourceNotFound" value="true" />
</bean>
これで、この2番目の春のPlaceholderConfigurerで定義されたBeanが、プロパティが欠落しているためにインスタンス化できないという動作があります。
BeanDefinitionStoreException:クラスパスリソース[comm-server.spring.xml]で定義された「commServer」という名前の無効なBean定義:プレースホルダー「comm.server.CommServer.port」を解決できませんでした
PropertyPlaceholderConfigurerクラスにブレークポイントを設定すると、最初のBeanインスタンスに対してのみトリガーされ、2番目のBeanインスタンスに対してはトリガーされません。誰かが同様の設定をしていて、私にアドバイスを与えることができますか?
ありがとう、
セバスチャン