环境:spring3+c3p0+jdbc.properties
发现了For input string: "${cpool.minPoolSize}这样的问题。
我们从spring的配置文件说起:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="autoCommitOnClose" value="true" /> <property name="initialPoolSize" value="${cpool.minPoolSize}" /> <property name="checkoutTimeout" value="${cpool.checkoutTimeout}" /> <property name="minPoolSize" value="${cpool.minPoolSize}" /> <property name="maxPoolSize" value="${cpool.maxPoolSize}" /> <property name="maxIdleTime" value="${cpool.maxIdleTime}" /> <property name="acquireIncrement" value="${cpool.acquireIncrement}" /> <property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}" /> </bean>
上面如果将<property name="jdbcUrl" value="${jdbc.url}" />改成固定值,<property name="jdbcUrl" value="192.168.1.2" />
这种格式的,则不会出现这样的问题。
始终得不到解决方案,后来我才发现原来是BeanFactory的创建上有了问题。
因为我用的接口XmlBeanFactory的,这是一个deprecated的,如下:
XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource(
"SpringHelloWorld.xml"));
后来改成BeanFactory就行了,代码如下:
BeanFactory factory=new ClassPathXmlApplicationContext("SpringHelloWorld.xml");
问题解决。