使用bootstrap.yml加载指定的三个配置文件报错 java.lang.IllegalArgumentException: Could not resolve placeholder 'bonded-api.url.getTokenUrl' in value "${bonded-api.url.getTokenUrl}",该如何解决,请详细解释
时间: 2023-12-21 07:04:24 浏览: 127
Spring Boot 中application.yml与bootstrap.yml的区别
这个错误是因为在你的配置文件中,使用了`${bonded-api.url.getTokenUrl}`占位符,但是Spring Boot在加载配置文件时无法找到该占位符的值,导致抛出了该异常。
解决这个问题的方法是,在配置文件中定义该占位符的值,可以通过以下两种方式实现:
1. 在配置文件中直接定义该占位符的值
在`application.yml`或者`application.properties`文件中,添加以下内容:
```yaml
bonded-api:
url:
getTokenUrl: http://example.com/getToken
```
或者:
```properties
bonded-api.url.getTokenUrl=http://example.com/getToken
```
这样,当Spring Boot加载配置文件时,就会找到该占位符的值,从而避免了该异常的出现。
2. 在代码中使用`@Value`注解获取占位符的值
在需要获取占位符值的地方,使用`@Value`注解,并指定占位符的名称,例如:
```java
@Value("${bonded-api.url.getTokenUrl}")
private String getTokenUrl;
```
这样,Spring Boot会自动将占位符`${bonded-api.url.getTokenUrl}`替换成对应的值,并注入到`getTokenUrl`中。
以上两种方法都可以解决该异常的问题,具体选择哪种方法取决于你的需求和实际情况。
阅读全文