我做了一个Spring Boot应用程序,并使用了一些命令行参数。我在
等服务中读到它们@Value("${v}")
private String vertical;
应用程序有效并查看从命令行传递的值。我向所有JUnit测试运行配置添加了相同的命令行参数
- spring.profiles.active = development --m = keyword --v = Healthcare --i = keyword_update.json
但是当我尝试运行测试时它崩溃了,这意味着应用程序上下文无法获得命令行属性:
2016-05-28 17:16:00.924 ERROR 4204 --- [主要] o.s.boot.SpringApplicat ion:应用程序启动失败
org.springframework.beans.factory.BeanCreationException:错误 用名称'应用程序创建bean&#39 ;:注入自动装配 依赖失败;嵌套的例外是 org.springframework.beans.factory.BeanCreationException:不能 autowir e field:healthjobs.service.Catalog healthjobs.app.Application.catalog;嵌套的e xception是 org.springframework.beans.factory.BeanCreationException:错误创建 名称' catalogImpl'注入自动连接的依赖项 失败;新的例外是 org.springframework.beans.factory.BeanCreationException:不能 autowire字段:healthjobs.service.CatalogPage healthjobs.service.CatalogIm pl.catalogPage;嵌套异常是 org.springframework.beans.factory.BeanCreati onException:错误 创建名称为' catalogPageImpl':注入autow ired的bean 依赖失败;嵌套异常是 org.springframework.beans.factory。 BeanCreationException:不能 autowire字段:private java.lang.String health jobs.service.CatalogPageImpl.vertical;嵌套异常是 java.lang.IllegalArgu mentException:无法解析占位符' v' 在字符串值" $ {v}"
为什么呢?如何在spring boot中使用命令行参数运行测试?
PS完整堆栈跟踪显示的时间太长,无法在此处附加。当我运行mvn包时,我得到了关于test的相同错误,但是mvn run config没有输入命令行参数的能力。我的环境:
Spring Tool Suite版本:3.7.2.RELEASE Build ID:201511261048 平台:Eclipse Mars.1(4.5.1)