【发布时间】:2013-05-29 08:50:43
【问题描述】:
我正在使用带有弹簧配置文件的 spring 3.1 来加载 bean。在我的应用上下文文件中,我加载如下属性:
<context:property-placeholder order="1" location="classpath*:META-INF/spring/*_${spring.profiles.active}.properties" ignore-unresolvable="true"/>
然后我使用属性值来像加载数据源bean一样
<property name="driverClassName" value="${database.driverClassName}"/>
它工作正常。 当我添加更多属性占位符以便可以加载某些数据库表中的属性时,问题就开始了。
这使用由
加载的属性引用<bean id="configFactoryBean"
class="org.springmodules.commons.configuration.CommonsConfigurationFactoryBean">
<constructor-arg ref="globalSystemConfiguration"/>
</bean>
为了补充细节,这个configFactoryBean 使用datasource 从数据库中加载属性。
当我这样做时,我有以下异常:
java.lang.ClassNotFoundException: ${database.driverClassName}
我的分析是它试图在从第一个上下文属性占位符解析属性之前加载datasource。我可能错了。或者弹簧配置文件变量可能没有正确解析。
谁能帮我解决这个问题。
谢谢 阿奇
【问题讨论】:
-
尝试将 order 设置为 0
-
没有。它不起作用。我将第一个的 order 更改为 0,但仍然有相同的错误。
-
哦,等等,它没有找到您的数据库驱动程序。您是否已将其添加到类路径中?
-
是的。如果我删除其他两个
标签,它就可以工作。我认为它无法解析属性 ${database.driverClassName}
标签: java spring hibernate spring-mvc