原因是在spring_config.xml中使用阿里的连接池时,不能直接使用${username}这个命名,它会采用当前系统的账户名。
<context:property-placeholder location="classpath:jdbc.properties"/> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean>
应该采用其他命名传入${jdbc.username}
<context:property-placeholder location="classpath:jdbc.properties"/> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${password}" /> </bean>
对应的jdbc.propertities
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/gxa
jdbc.username=root
password=123456
同时需要注意的是使用阿里连接池时,property name="driverClassName" 必须采用这种命名,不然也会报错。