【springMVC】dataSource注入username属性失败,导致getConnection超时或报错的解决办法

这是我的Druid数据连接池的properties文件:

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/users?serverTimezone=UTC&useSSL=FALSE&allowPublicKeyRetrieval=TRUE
username=root
password=123456

在applicationContext.xml里使用EL表达式注入属性

    <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}"/>
        <property name="maxWait" value="5000"/>
    </bean>

结果:获取conncetion超时

解决办法:

更换用户名username的键名

properties里:OtherName=root

然后更改注入时的EL表达式为${OtherName},其他不动

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${OtherName}"/>
        <property name="password" value="${password}"/>
        <property name="maxWait" value="5000"/>
    </bean>

不知道时什么原理,总之就是解决了问题√

posted @ 2022-01-17 14:31  把你画在马桶上  阅读(513)  评论(0)    收藏  举报