0

という名前のプロパティ ファイルがありsetting.properties、内容は次のとおりです。

authentication.provider=${Home_Url}/idm/names.lst

次のように、フレームワークPropertyPlaceholderConfigurer内でこのファイルを使用しています。Spring

<bean id="acl.authentication.provider" class="java.lang.String">
    <constructor-arg index="0" value="${authentication.provider}"/>
</bean>

しかし、上記のコンテキストを初期化すると、次のエラーが発生します。

スレッド "main" org.springframework.beans.factory.BeanDefinitionStoreException での例外:
クラスパス リソース [context.xml] で定義された名前 'acl.authentication.provider#0' の無効な Bean 定義: プレースホルダー 'Home_Url' を解決できませんでした

私の質問は次のとおりです。PropertyPlaceholderConfigurer を使用して処理する場合、プロパティ ファイルの値に$文字を含める方法はありますか?

4

1 に答える 1

1

最も簡単な回避策は、 プロパティを に設定して を構成するPropertyPlaceholderConfigurerことignoreUnresolvablePlaceholdersですtrue。これにより、例外で失敗する代わりに、解決できない plcaeholder が無視されます。または、 を別のものに変更してplaceholderPrefixから@{、 を使用します。

<constructor-arg index="0" value="@{authentication.provider}"/>
于 2013-04-08T10:50:39.350 に答える