gpt4 book ai didi

spring - 无法解析占位符 | Spring 占位符

转载 作者:行者123 更新时间:2023-12-05 00:27:00 24 4
gpt4 key购买 nike

我正在尝试使用 Spring <context:property-placeholder>在我的应用程序中第一次遇到一些问题,我已经尝试了很多事情以及谷歌并且似乎很少有关于 SO 的帖子。

我有一个 Web 应用程序,需要将一些键传递给底层类,正在考虑使用占位符。这是我的应用程序的结构

Main
-java
-resources
-webapp

我有一个 project.properties resource 中的文件文件夹,这就是我正在尝试的方式
<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但没有成功。不确定我做错了什么

最佳答案

听起来好像您正在使用 Maven 项目结构。将您的 project.properties里面 src/main/resources资源文件是正常的做法——因为 Maven 会自动将它们传输到最终工件的类路径中——这将是 /WEB-INF/classes在你的 war 中。

但是,您应该修改 location您的 <context:property-placeholder> 的属性标记并删除 resources文件夹前缀。 resources文件夹本身不会转移到 /WEB-INF/classes构建war文件时-因此不会成为运行时类路径的一部分。仅传输文件夹内容。

<context:property-placeholder location="classpath:project.properties" />

关于spring - 无法解析占位符 | Spring 占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21437246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com