日期:2014-05-19  浏览次数:20658 次

applicationContext.xml获取application.properties全局变量出错
applicationContext.xml文件关键代码配置如下
<!-- 定义受环境影响易变的变量 -->
<context:property-placeholder location="classpath*:application.properties" />

<bean id="configBean"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath*:application.properties</value>
</property>
</bean>

<bean id="masterDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
parent="parentDataSource">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>


application.properties配置如下
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://......
jdbc.username=root
jdbc.password=123456


启动不报错,到登录获取数据库链接是报错如下:

2012-06-07 11:50:19,832 [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] WARN  [com.mchange.v2.c3p0.DriverManagerDataSource] - Could not load driverClass ${jdbc.driver}
java.lang.ClassNotFoundException: ${jdbc.driver}
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1493)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)


多谢格纹大虾指教。。

------解决方案--------------------
Could not load driverClass ${jdbc.driver}
这么明显。
看属性文件里面是否有driver属性 , 是否有写错。如果没问题
再检查驱动包 是否有拷到项目里面
------解决方案--------------------
application.properties配置如下
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://......
jdbc.username=root
jdbc.password=123456


这里明显配置了?而且是复制过去的 ,不可能写错,驱动包没问题。已经考进去运行几个月了。。

<bean id="masterDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
parent="parentDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value=",,," />
<property name="user" value="122" />
<property name="password" value="123" />
</bean>
因为这样写死的是运行几个月了。。。
我认为是哪里配置错了。。。
不过还是多谢楼上大虾

------解决方案--------------------
<!-- 定义受环境影响易变的变量 -->
 <context:property-placeholder location="classpath*:application.properties" />

 改成:
<!-- 定义受环境影响易变的变量 -->
 <context:property-placeholder location="classpath:application.properties" />

 
------解决方案--------------------
刚试过了。。还是不可以,一样的错误,多谢楼上大虾!
------解决方案--------------------

context:property-placeholder location="classpath*:application.properties" />

<bean id="configBean"
class="org.springframework.beans.fa