Config怎么使用?

wen python案例 1

本文目录导读:

Config怎么使用?

  1. Python 中的 configparser(标准库)
  2. Java Spring Boot 中的 application.yml/properties
  3. 微服务配置中心:Nacos / Apollo
  4. 前端框架:Vue.js 的环境变量 .env
  5. 基础设施:Kubernetes ConfigMap
  6. 总结:我该用哪种?

下面是 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.ymlapplication.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”),我可以给你更详细的代码示例。

抱歉,评论功能暂时关闭!