Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory
问题就出现在这句话 :<property name="username" value="${username}" />
因为此时${username}的值并不是jdbc.properties文件中的username值,而是JVM系统环境变量的username。spring容器在管理PropertySource时,不只读取自己写的properties文件,spring也会把JVM system properties和JVM system env properties都读取到容器中,所以不要使用和JVM properties相同的key。
解决办法:配置文件改成比如为user就好了
我们可以看下这个环境变量在spring 容器启动的时候,这个值到底是什么: