Java 无法解析属性文件
我有两个maven模块-Java 无法解析属性文件,java,spring,properties,Java,Spring,Properties,我有两个maven模块-Webapp和Persistence。持久性模块有一个属性文件-数据库.properties和两个上下文文件-持久性上下文.xml(主),数据源上下文.xml(导入到持久性上下文.xml) persistenceContext.xml 数据库.properties Persistencemaven模块是Webapp模块的依赖项。我将Webapp部署到Tomcat时失败,出现异常: org.springframework.beans.factory.BeanDefiniti
Webapp
和Persistence
。持久性模块有一个属性文件-数据库.properties
和两个上下文文件-持久性上下文.xml
(主),数据源上下文.xml
(导入到持久性上下文.xml
)
persistenceContext.xml
数据库.properties
Persistence
maven模块是Webapp
模块的依赖项。我将Webapp
部署到Tomcat时失败,出现异常:
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'dataSource' defined in class path resource [spring-datasource.xml]: Could not resolve placeholder 'database.url' in string value "${database.url}"
我尝试了以下解决方案:
resources\com\example\persistence
datasourceContext.xml
中使用属性占位符
或PropertyPlaceholderConfigurer
,而不是在persistenceContext.xml
中使用属性占位符
Webapp
模块下移动了database.properties,然后尝试第1点database.properties
文件位于Persistence
模块的类路径下上面提到的一切都不起作用,我还查看了stackoverflow和spring论坛上的其他线程,但没有成功。尝试
classpath*:
而不是classpath:
。还要确保您没有多个
,因为它们会相互干扰。请在您的webapp模块中附加mvn依赖项:resolve
的输出,以及持久性模块的目录树。每个应用程序只能使用一个
?我有两个
——一个在Webapp
模块中,另一个在Persistence
模块中。当您有多个XML元素时,您将创建多个占位符,第二个占位符将替换第一个占位符。使用Java配置,您可以使用多个@PropertySource
注释,并将条目添加到同一占位符中。谢谢,问题在于多次使用
。请@M.Deinum,发送您的评论式回复。
<bean id="dataSource" destroy-method="close"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="${database.url}"/>
<property name="user" value="${database.username}"/>
<property name="password" value="${database.password}"/>
<property name="debugUnreturnedConnectionStackTraces" value="true"/>
<property name="unreturnedConnectionTimeout" value="20"/>
<property name="minPoolSize" value="5"/>
<property name="initialPoolSize" value="10"/>
<property name="maxPoolSize" value="50"/>
<property name="maxStatements" value="50"/>
<property name="idleConnectionTestPeriod" value="120"/>
<property name="maxIdleTime" value="1200"/>
</bean>
database.url=jdbc:mysql://255.255.255.255:3306/...
database.username=...
database.password=...
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'dataSource' defined in class path resource [spring-datasource.xml]: Could not resolve placeholder 'database.url' in string value "${database.url}"