在 Spring Boot 应用中,OS 环境变量(Environment Variables)是一种常见的配置方式,它允许你将敏感或可变配置(如数据库密码、端口号)从代码中分离出来,便于不同环境(如开发、生产)切换。Spring Boot 通过 Spring 的 Environment 接口自动加载这些变量,支持多种注入方式。
export A_B=123(临时),或在 ~/.bashrc 中永久设置。set A_B=123(临时),或在系统环境变量中配置。ENV A_B=123。也可以在 PASS 托管平台设置环境变量A_B),值可以是字符串、数字等。Spring Boot 会自动将 OS 环境变量加载到 Environment 中。你可以通过以下方式访问:
@Value 注解注入到字段(推荐用于简单配置)在 Controller、Service 或配置类中直接注入。
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@Value("${A_B:default_value}") // 如果 A_B 未设置,默认值为 "default_value"
private String aBValue;
@GetMapping("/test")
public String test() {
return "A_B 的值为: " + aBValue;
}
}
${A_B}:从环境变量中读取 A_B。:default_value:可选的后备默认值。application.properties 或 application.yml 中引用将环境变量作为占位符使用,便于集中管理配置。
application.properties:
my.app.value=${A_B:123}
server.port=${PORT:8080}
application.yml:
my:
app:
value: ${A_B:123}
server:
port: ${PORT:8080}
然后在代码中注入:
@Value("${my.app.value}")
private String appValue;
Environment 对象手动获取(适用于复杂逻辑)