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)
多谢格纹大虾指教。。

解决方案 »

  1.   

    Could not load driverClass ${jdbc.driver}
    这么明显。
    看属性文件里面是否有driver属性 , 是否有写错。如果没问题
    再检查驱动包 是否有拷到项目里面
      

  2.   

    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>
    因为这样写死的是运行几个月了
    我认为是哪里配置错了
    不过还是多谢楼上大虾
      

  3.   

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

  4.   


    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>
    你不觉得冲突吗
    context:property-placeholder location="classpath*:application.properties" />表示加载类路径下的所有application.properties;
    <bean id="configBean"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
    <value>classpath*:application.properties</value>
    </property>也是相同的道理两者留其一即可
      

  5.   

    <property name="locations">
     <value>classpath*:application.properties</value>
     </property>
     
    是不是这样的啊
    <property name="location">
     <value>classpath*:application.properties</value>
     </property>或者
    <property name="location">
      <list>
     <value>classpath*:application.properties</value>
    </list>
     </property>
      

  6.   

    parent="parentDataSource"parentDataSource这个配置的什么呢拿出来看看
      

  7.   

    to:MrsFeng  我去掉一个还是不行
    to: m540920181  你那个不对的。。不用试了。。多谢你
    <bean id="parentDataSource" abstract="true" destroy-method="close">
    <property name="minPoolSize">
    <value>10</value>
    </property>
    <property name="maxPoolSize">
    <value>100</value>
    </property>
    <property name="initialPoolSize">
    <value>10</value>
    </property>
    <property name="maxIdleTime">
    <value>60</value>
    </property>
    <property name="acquireIncrement">
    <value>5</value>
    </property> <property name="idleConnectionTestPeriod">
    <value>50</value>
    </property>
    <property name="acquireRetryAttempts">
    <value>30</value>
    </property>
    <property name="breakAfterAcquireFailure">
    <value>true</value>
    </property> <property name="numHelperThreads">
    <value>5</value>
    </property>
    <property name="acquireRetryDelay">
    <value>500</value>
    </property>
    <property name="autoCommitOnClose">
    <value>true</value>
    </property>
    <property name="propertyCycle">
    <value>300</value>
    </property>
    <property name="checkoutTimeout">
    <value>8000</value>
    </property>
    </bean>
      

  8.   

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
    <list>
    <value>classpath:database/datebase.properties</value>
    <value>classpath:hibernate.properties</value>
    </list>
    </property>
    </bean>
    仅供参考
      

  9.   

    弱弱的问下你的application.properties放在哪个路径下
      

  10.   

    把properties和xml放在同一路径下  ,另外把你的propertyValue 设成 text不要设置成Attribute,估计直接引用引号里面的值了
      

  11.   

    多谢各位大侠,<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <!-- property name="sqlSessionFactory" ref="sqlSessionFactory" /  -->
    <property name="basePackage" value="com.yougou.*.dao" />
    </bean>问题找到了,是因为多配置了这个,<!-- property name="sqlSessionFactory" ref="sqlSessionFactory" /  -->注释掉这个就可以了。。多谢啦。。
      

  12.   

    我遇到了同样的问题 但我是多数据源
    <!-- property name="sqlSessionFactory" ref="sqlSessionFactory" /  -->
    这个不写的话 启动都报错了