单元测试报错

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

光光的思念

2016-05-09 20:46

我在jdbc:properties中的

username = root

但是在调用之后单元测试

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

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

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

写回答 关注

5回答

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

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

    疯筝萌萌

    http://www.springframework.org/schema/context/spring-context.xsd 换成 http://www.springframework.org/schema/context/spring-context-3.0.xsd 也可以,打开对比了下,system-properties-mode,低版本默认是ENVIRONMENT,高版本舍弃了。应该是环境变量与xsd双重因素导致的

    2016-05-30 16:33:20

    共 2 条回复 >

  • 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

    光光的思念

    改过之后就好了。就是不知道是什么原因。

    2016-05-13 12:43:21

    共 1 条回复 >

Java高并发秒杀API之业务分析与DAO层

Java实现高并发秒杀API的第一门课,还等什么,赶快来加入吧

87524 学习 · 522 问题

查看课程

相似问题