他のファイルのプロパティ プレースホルダーに依存する多数の Spring ファイルがあります。基本的に、次のような 3 つの XML ファイルがあります。
one.xml :
<?xml version="1.0"?>
<beans ...>
<import resource="two.xml"/>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/your.properties</value>
</list>
</property>
</bean>
<bean id="clasher" class="whatever.Clash">
<property name="name" value="${route.one}"/>
</bean>
</beans>
two.xml :
<?xml version="1.0"?>
<beans ...>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/my.properties</value>
</list>
</property>
</bean>
</beans>
my.properties :
route.one = Why Not?
your.properties :
entirely.unrelated = true
基本的に次のようなエラーが表示されます。
Exception in thread "Launcher:/serverling" org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'clasher' defined in ServletContext resource [/WEB-INF/one.xml]: Could not resolve placeholder 'route.one'
at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties(PropertyPlaceholderConfigurer.java:287)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:75)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:663)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:638)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407)
at org.red5.server.tomcat.TomcatLoader$1.run(TomcatLoader.java:594)
プロパティ プレースホルダーをコンテナー全体に継承させる方法はありますか?
私の最初の想定では、コンテナーはどのファイル Bean が存在するかをあまり気にしないため、単純にすべての Bean を構成し、コンテナー内で定義されたすべての Bean を実行し、複数のプロパティ プレースホルダー コンフィギュアラーを使用してそれらを埋めます。
この例が機能しないのはなぜですか L