Ama*_*eag 4 spring yaml spring-boot
我有以下application.yml:
sftp:
sessionFactory:
host: ${HOST:127.0.0.1}
username: ${USERNAME:test}
password: ${PASSWORD: test}
Run Code Online (Sandbox Code Playgroud)
密码以空格开头。启动Spring Boot应用程序时,它崩溃并显示:
Caused by: mapping values are not allowed here
in 'reader', line 26, column 25:
password: ${PASSWORD: test}
Run Code Online (Sandbox Code Playgroud)
尝试使用$ {PASSWORD:'test'}时,密码的值为password ='test'而不是password = test。
在引入环境变量之前,application.yml看起来像这样:
sftp:
sessionFactory:
host: 127.0.0.1
username: test
password: ' test'
Run Code Online (Sandbox Code Playgroud)
一切正常。
知道如何指定一个以空格开头的默认值吗?谢谢。
SpEL使您可以合并原始字符串和运算符。在您的情况下,您只需要一个纯字符串,这样就可以定义您的属性,如下所示:
password: ${PASSWORD:#{' test'}}
Run Code Online (Sandbox Code Playgroud)
application.yaml
testing:
my:
username: ${USERNAME:user}
password: ${PASSWORD:#{' test'}}
Run Code Online (Sandbox Code Playgroud)
Testing.java
@Component
public class Testing {
@Value("${testing.my.username}")
String username;
@Value("${testing.my.password}")
String password;
@PostConstruct
public void post() {
System.out.println("User: (" + username + ")");
System.out.println("Pass: (" + password + ")");
}
Run Code Online (Sandbox Code Playgroud)
日志
User: (user)
Pass: ( test)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4195 次 |
| 最近记录: |