Spring Boot允许我们用YAML等价物替换我们的application.properties文件.但是我的测试似乎遇到了麻烦.如果我注释我的TestConfiguration(一个简单的Java配置),它期望一个属性文件.
例如,这不起作用:
@PropertySource(value = "classpath:application-test.yml")
如果我在我的YAML文件中有这个:
db:
url: jdbc:oracle:thin:@pathToMyDb
username: someUser
password: fakePassword
Run Code Online (Sandbox Code Playgroud)
我会用这样的东西来利用这些价值观:
@Value("${db.username}") String username
Run Code Online (Sandbox Code Playgroud)
但是,我最终得到了错误:
Could not resolve placeholder 'db.username' in string value "${db.username}"
Run Code Online (Sandbox Code Playgroud)
我如何在测试中利用YAML的优点?
我正在尝试从YML加载配置。如果这些是逗号分隔的值,则可以加载值,也可以加载列表。但是我无法加载典型的YML列表。
配置类别
@Component
@PropertySource("classpath:routing.yml")
@ConfigurationProperties
class RoutingProperties(){
var angular = listOf("nothing")
var value: String = ""
}
Run Code Online (Sandbox Code Playgroud)
工作routing.yml
angular: /init, /home
value: Hello World
Run Code Online (Sandbox Code Playgroud)
无法正常工作routing.yml
angular:
- init
- home
value: Hello World
Run Code Online (Sandbox Code Playgroud)
为什么我不能加载yml的第二个版本/我有语法错误?
ENV:Kotlin,春季2.0.0.M3