本文目录导读:

- Python 中的
configparser(标准库) - Java Spring Boot 中的
application.yml/properties - 微服务配置中心:Nacos / Apollo
- 前端框架:Vue.js 的环境变量
.env - 基础设施:Kubernetes ConfigMap
- 总结:我该用哪种?
下面是 5 种常见场景下的“Config”使用方法:
Python 中的 configparser(标准库)
用于读写 .ini 或 .cfg 格式的配置文件。
示例文件 config.ini:
[Database] host = localhost port = 3306 user = root password = 123456 [Logging] level = INFO file = app.log
Python 代码:
import configparser
config = configparser.ConfigParser()
config.read('config.ini') # 读取文件
# 获取值
db_host = config['Database']['host']
db_port = config.getint('Database', 'port') # 自动转为int
log_level = config.get('Logging', 'level')
print(f"Connecting to {db_host}:{db_port}")
Java Spring Boot 中的 application.yml/properties
Spring Boot 通过 application.yml 或 application.properties 管理配置。
示例 application.yml:
server:
port: 8080
servlet:
context-path: /api
spring:
datasource:
url: jdbc:mysql://localhost:3306/db
username: root
password: secret
app:
my-config: hello
Java 代码中使用:
// 方式1:直接注入(推荐)
@Value("${app.my-config}")
private String myConfig;
// 方式2:绑定到配置类(推荐用于复杂配置)
@ConfigurationProperties(prefix = "spring.datasource")
@Component
@Data
public class DataSourceConfig {
private String url;
private String username;
private String password;
}
微服务配置中心:Nacos / Apollo
用于分布式系统统一管理配置,支持动态刷新。
Nacos 客户端使用示例 (Java):
// 1. 添加依赖 nacos-config-spring-boot-starter
// 2. 在配置文件中指定
nacos.config.server-addr=127.0.0.1:8848
nacos.config.data-id=myapp.properties
nacos.config.group=DEFAULT_GROUP
// 3. 使用 @NacosValue 动态获取
@RestController
public class ConfigController {
@NacosValue(value = "${my.app.config}", autoRefreshed = true)
private String myConfig;
@GetMapping("/config")
public String getConfig() {
return myConfig; // 修改Nacos配置后,这里会自动更新
}
}
前端框架:Vue.js 的环境变量 .env
Vue 通过环境变量区分开发/生产环境。
创建文件:
# .env.development (开发环境) VUE_APP_API_BASE=http://localhost:3000/api VUE_APP_TITLE=开发版 # .env.production (生产环境) VUE_APP_API_BASE=https://api.example.com VUE_APP_TITLE=正式版
在 Vue 组件中使用:
// 必须以 VUE_APP_ 开头 console.log(process.env.VUE_APP_API_BASE)
基础设施:Kubernetes ConfigMap
用于向 Pod 注入配置。
创建 ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
app.properties: |
key1=value1
key2=value2
app.yaml: |
debug: false
在 Pod 中使用:
apiVersion: v1
kind: Pod
spec:
containers:
- name: myapp
image: myapp:latest
volumeMounts:
- name: config-volume
mountPath: /etc/config # 挂载到容器内目录
volumes:
- name: config-volume
configMap:
name: my-config
我该用哪种?
| 你的场景 | 推荐工具 |
|---|---|
| 单机小项目(Python/Node) | 本地 .ini / .env / yaml |
| Java 微服务(需动态变更) | Spring Cloud Config / Nacos / Apollo |
| 前端项目 | .env 环境变量文件 |
| 云原生/Docker/K8s | ConfigMap / Docker Compose env_file |
| 通用、复杂配置 | YAML 格式 + 第三方库(如 pyyaml) |
如果方便,可以补充一下你的具体技术栈或使用环境(Python 的 ConfigParser” 或 “Spring Cloud Config”),我可以给你更详细的代码示例。