springboot yml 配置文件,如何动态的从环境中获取值,如果没有则使用默认值
时间: 2024-03-12 20:45:26 浏览: 232
在 Spring Boot 中,可以使用 `${}` 语法来获取环境变量的值,也可以使用 `@Value` 注解来获取。下面分别介绍一下这两种方法:
1. `${}` 语法
在 `application.yml` 配置文件中,可以使用 `${}` 语法来获取环境变量的值,例如:
```
my.property: ${MY_ENVIRONMENT_VARIABLE:default_value}
```
上面的配置中,`${MY_ENVIRONMENT_VARIABLE:default_value}` 表示从名为 `MY_ENVIRONMENT_VARIABLE` 的环境变量中获取值,如果该环境变量不存在,则使用 `default_value` 作为默认值。
2. `@Value` 注解
在代码中,可以使用 `@Value` 注解来获取环境变量的值。例如:
```
@Value("${MY_ENVIRONMENT_VARIABLE:default_value}")
private String myProperty;
```
上面的代码中,`${MY_ENVIRONMENT_VARIABLE:default_value}` 表示从名为 `MY_ENVIRONMENT_VARIABLE` 的环境变量中获取值,如果该环境变量不存在,则使用 `default_value` 作为默认值。`@Value` 注解还可以用于注入其他配置文件中的属性。
需要注意的是,如果使用了 `@Value` 注解,需要在启动类上添加 `@PropertySource` 注解来指定配置文件的位置,例如:
```
@SpringBootApplication
@PropertySource(value = "classpath:custom.properties")
public class Application {
// ...
}
```
上面的代码中,`@PropertySource` 注解指定了 `custom.properties` 配置文件的位置。
阅读全文