Spring Boot 中使用 OS 环境变量(ENV)

在 Spring Boot 应用中,OS 环境变量(Environment Variables)是一种常见的配置方式,它允许你将敏感或可变配置(如数据库密码、端口号)从代码中分离出来,便于不同环境(如开发、生产)切换。Spring Boot 通过 Spring 的 Environment 接口自动加载这些变量,支持多种注入方式。

1. 设置环境变量

2. 在 Spring Boot 中的使用方式

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;
    }
}

方式二:在 application.propertiesapplication.yml 中引用

将环境变量作为占位符使用,便于集中管理配置。

然后在代码中注入:

@Value("${my.app.value}")
private String appValue;

方式三:通过 Environment 对象手动获取(适用于复杂逻辑)