问答详情
源自:4-8 DAO层单元测试编码和问题排查(上)

单元测试报错

我在jdbc:properties中的

username = root

但是在调用之后单元测试

 Access denied for user 'zqq'@'localhost' (using password: YES)

也就是说我登录用户名变成了我电脑的用户名zqq而不是root

所以我想知道${username}调用为啥会变?

提问者:光光的思念 2016-05-09 20:46

个回答

  • 益军
    2016-05-10 11:10:50
    已采纳

    你的jvm环境变量里有username参数导致替换了,尝试修改jdbc.properties和spring配置文件,名称改成jdbc.username,jdbc.password试下。

  • ranjiexu
    2016-07-02 17:16:29


    原因:

    context:property-placeholder 中属性system-properties-mode

    Controls how to resolve placeholders against system properties. As of Spring 3.1, this attribute

     value defaults to "ENVIRONMENT"

    解决办法:

    1、改用以下配置:

            <bean id= "propertyConfigurer"

                   class= "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >

                  <property name= "locations">

                         <list>

                               <value> classpath:jdbc.properties</value >

                         </list>

                  </property>

            </bean>


    2、properties文件中的key不要与系统配置重名,比如  jdbcusername=root

    3、将context:property-placeholder 中属性system-properties-mode  默认值配置成:NEVER


  • Feng_小疯
    2016-06-07 20:52:25

    这个问题弄了一晚上,实在太大打击了!

  • 知止而后有定
    2016-05-18 20:19:23

    是这个问题  弄了一下午。。。。

  • 慕圣0177899
    2016-05-10 15:53:41

    环境变量的问题

    建议在jdbc配置文件中 将username 换成 user