applicationContext.xml获取application.properties全局变量出错applicationContext.xml文件关键代码配置
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.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>也是相同的道理
两者留其一即可
[解决办法] <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>
[解决办法] parent="parentDataSource"
parentDataSource这个配置的什么呢
拿出来看看
[解决办法] 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>
[解决办法] <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>
仅供参考
[解决办法] 弱弱的问下
你的application.properties放在哪个路径下
[解决办法] 反正我按照你的方式测试过了
是没问题的!
------解决方案--------------------
把properties和xml放在同一路径下 ,另外把你的propertyValue 设成 text不要设置成Attribute,估计直接引用引号里面的值了
[解决办法] 多谢各位大侠,<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" / -->注释掉这个就可以了。。。。。多谢啦。。
[解决办法] 引用: <!-- 定义受环境影响易变的变量 --> <context:property-placeholder location="classpath*:application.properties" /> 改成: <!-- 定义受环境影响易变的变量 --> <context:property-placeholder location="classpath:application.pr…… 这个没有影响的,再说人家加*了比你的覆盖的范围还大点
[解决办法] 我遇到了同样的问题 但我是多数据源
<!-- property name="sqlSessionFactory" ref="sqlSessionFactory" / -->
这个不写的话 启动都报错了