我正在尝试在我的应用程序中首次使用Spring的<context:property-placeholder>
,遇到了一些问题,我已经尝试了很多方法,包括谷歌搜索和SO上的一些帖子。
我有一个Web应用程序,并需要将一些密钥传递给底层类,考虑使用占位符来实现。这是我的应用程序结构:
Main
-java
-resources
-webapp
我有一个位于
resource
文件夹内的project.properties
文件,我正在尝试这样做:<context:property-placeholder location="classpath:resources/project.properties" />
<beans:bean id="reCaptcha" class="net.tanesha.recaptcha.ReCaptchaImpl">
<beans:property name="privateKey" value="${demo.recapatcha_private_key}"/>
<beans:property name="publicKey" value="${demo.recapatcha_public_key}"/>
</beans:bean>
但是在服务器启动时,我遇到了以下异常。
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'reCaptcha' defined in ServletContext resource [/WEB-INF/spring/appServlet/servlet-context.xml]: Could not resolve placeholder 'demo.recapatcha_private_key'
我已经尝试将project.properties文件放置在不同的位置,其中包括WEB-INF/classes
和webapp
的几个其他位置,但没有成功。不确定我做错了什么。
<context:property-placeholder>
声明和占位符本身都在servlet-context.xml
中定义吗? - Will Keeling